
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()の引数
引数 | 型 | 説明 |
---|---|---|
$link | string | リンクテキスト(デフォルトは「Edit This Link」) |
$before | string | リンクの前に出力するHTML |
$after | string | リンクの後に出力するHTML |
$bookmark | int | ブックマーク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()のよくある用途
- ブログロールを作成
wp_list_bookmarks()
で表示- ログイン中の管理者だけ「編集リンク」を出す
実践例:ブログロールと編集リンクを組み合わせる
<?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
でカスタマイズ可能- リンクマネージャー機能が無効だと利用できない
- 現在は非推奨機能なので新規サイトでは利用しないのがベター
ポイント
- 古いブログロール表示で活用
- 権限管理が自動
- 今後の廃止リスクを理解する