edit_bookmark_link()

edit_bookmark_link()
目次

edit_bookmark_link()とは?

edit_bookmark_link() は、
リンク(ブックマーク)の編集画面へのリンクをHTMLで出力する関数
です。

WordPressには昔から「リンク(ブックマーク)」機能があり、
いわゆる「ブログロール」を管理するために利用されていました。

例:

  • お気に入りのサイト
  • 相互リンク
  • 外部リソース

この機能はWordPress 3.5から非推奨になっており、デフォルトでは無効です。
しかし、リンクマネージャーを有効にしている場合や古いサイトをメンテナンスする場合に
この関数を利用する機会があります。

どのように表示される?

edit_bookmark_link()を使うと、
ログイン中のユーザーにだけ「リンクを編集するリンク」を表示します。

例:

<a href="https://example.com/wp-admin/link.php?action=edit&link_id=5">Edit This Link</a>

このリンクをクリックすると、そのブックマークの編集画面に移動できます。

edit_bookmark_link()の基本的な書式

edit_bookmark_link( string $link = '', string $before = '', string $after = '', int $bookmark = null )

edit_bookmark_link()の引数

引数説明
$linkstringリンクテキスト(デフォルトは「Edit This Link」)
$beforestringリンクの前に出力するHTML
$afterstringリンクの後に出力するHTML
$bookmarkintブックマークID(省略時はグローバル $bookmark を使用)

edit_bookmark_link()の戻り値

なし(直接echoで出力)

edit_bookmark_link()の実用例

1. 最もシンプルな使い方

edit_bookmark_link();

出力:

<a href="...">Edit This Link</a>

(※ユーザーがログインしていて編集権限がある場合のみ表示)

2. カスタムリンクテキスト

edit_bookmark_link('このリンクを編集');

3. 前後にHTMLを追加

edit_bookmark_link(
  'リンク編集',
  '<span class="edit-link">',
  '</span>'
);

出力:

<span class="edit-link">
  <a href="...">リンク編集</a>
</span>

4. 特定のブックマークIDを指定

edit_bookmark_link('編集', '', '', 12);

表示条件

この関数は誰でも見えるわけではありません。
以下の条件をすべて満たすときだけ出力されます。

  • ログイン中
  • edit_linksの権限を持っているユーザー(通常は管理者)
  • 該当ブックマークが存在する

リンクマネージャーを有効にする

WordPress 3.5以降では標準で非表示になっていますが、
以下をfunctions.phpに書くと有効化できます。

add_filter('pre_option_link_manager_enabled', '__return_true');

これで管理画面の「リンク」メニューが復活し、ブックマークを管理できます。

ブックマークとは何か?

  • WordPressが提供していたリンク管理機能
  • テーマで「リンク集」や「ブログロール」を表示
  • wp_list_bookmarks()で出力

edit_bookmark_link()のよくある用途

  1. ブログロールを作成
  2. wp_list_bookmarks()で表示
  3. ログイン中の管理者だけ「編集リンク」を出す

実践例:ブログロールと編集リンクを組み合わせる

<?php
$bookmarks = get_bookmarks();

if ( $bookmarks ) {
  echo '<ul>';
  foreach ( $bookmarks as $bookmark ) {
    echo '<li>';
    echo '<a href="' . esc_url( $bookmark->link_url ) . '">';
    echo esc_html( $bookmark->link_name );
    echo '</a>';
    edit_bookmark_link(
      '編集',
      ' [',
      ']',
      $bookmark->link_id
    );
    echo '</li>';
  }
  echo '</ul>';
}
?>

管理者以外に見せないようにする

edit_bookmark_link()は自動で権限チェックを行うため、
ユーザー権限を気にする必要はありません。

権限がない場合、何も出力されません

edit_bookmark_link()のカスタマイズ例

CSSでリンクを装飾

.edit-link {
  font-size: 0.9em;
  margin-left: 8px;
}

.edit-link a {
  color: #0073aa;
  text-decoration: none;
}

.edit-link a:hover {
  text-decoration: underline;
}

edit_bookmark_link()のよくある質問

この関数を使う必要はある?

古いテーマでブログロールを管理している場合にのみ必要です。新しいプロジェクトではほとんど使いません。

ブックマークを新規に追加できる?

リンクマネージャーが有効なら「リンクを追加」で可能です。

出力をカスタムHTMLにしたい?

$before $after を駆使すれば柔軟に調整可能です。

テーマに書いて問題ない?

問題ありませんが、将来的に非推奨となる可能性が高い点は理解しておきましょう。

edit_bookmark_link()の現代的な代替方法

WordPress 4.0以降は「メニュー機能」を使うのが主流です。

  • 外部リンクもメニューに追加可能
  • ウィジェットでも出力可能
  • 編集リンクはメニュー管理画面から行う

新規サイトではリンクマネージャーではなく「メニュー」を活用するのがおすすめです。

edit_bookmark_link()のまとめ

  • edit_bookmark_link()ブックマーク(リンク)の編集画面へのリンクを表示する関数
  • ログイン中で権限があるユーザーにだけ表示
  • $link, $before, $after, $bookmarkでカスタマイズ可能
  • リンクマネージャー機能が無効だと利用できない
  • 現在は非推奨機能なので新規サイトでは利用しないのがベター

ポイント

  • 古いブログロール表示で活用
  • 権限管理が自動
  • 今後の廃止リスクを理解する
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

初めてホームページを作成したのは1996年。
2000年よりフリーランスで主に中小企業、学校、各種公的団体、個人事業主のWordPressを活用したホームページ制作を行っています。WordPressテーマはそれぞれのクライアントに合わせて作成しています。
WordPressを活用したサイト運営のための情報発信をしていきます。

目次