
edit_tag_link()とは?
edit_tag_link()
は
タグの編集画面へのリンクをHTMLで出力するテンプレートタグ
です。
たとえば、カテゴリーやタグのアーカイブページなどで「このタグを編集する」リンクを管理者に表示したい場合に使います。
「タグ」とは?
WordPressの「タグ」は投稿に自由に関連付けられる分類(タクソノミー)です。
- 投稿に複数付けられる
- URLが
/tag/slug/
の形式 - 管理画面の「投稿 > タグ」で管理できる
edit_tag_link()
を使うと、このタグを管理画面で編集するためのリンクが出ます。
edit_tag_link()の重要ポイント
WordPress 4.4からedit_term_link()
が導入され、edit_tag_link()
は内部的にedit_term_link()
を呼ぶ「ラッパー関数」になりました。
そのため、今後のテーマ開発ではedit_term_link()
を使う方が推奨されています。
ただし、古いテーマではまだedit_tag_link()
が使われています。
edit_tag_link()の基本の書式
edit_tag_link(
string $link = null,
string $before = '',
string $after = '',
int $tag = null
)
edit_tag_link()の引数
引数 | 型 | 説明 |
---|---|---|
$link | string | リンクのテキスト(デフォルト: Edit This Tag ) |
$before | string | リンクの直前に出すHTML |
$after | string | リンクの直後に出すHTML |
$tag | int | タグID(省略時はグローバル$tag を使用) |
戻り値はなく、直接echoで出力されます。
edit_tag_link()の実際の出力例
実行すると、下記のようなHTMLが出ます。
<a href="https://example.com/wp-admin/term.php?taxonomy=post_tag&tag_ID=5&post_type=post">Edit This Tag</a>
edit_tag_link()の表示条件
権限があるユーザーのみ表示されます。
具体的には、ログイン中でedit_terms
権限(通常は管理者)を持つユーザーだけが見られます。
edit_tag_link()の実際の使用例
シンプルな例
edit_tag_link();
出力:
<a href="...">Edit This Tag</a>
リンクテキストを日本語に
edit_tag_link('このタグを編集');
前後に装飾HTMLを追加
edit_tag_link('編集', '<span class="edit-tag-link">[', ']</span>');
出力:
<span class="edit-tag-link">[<a href="...">編集</a>]</span>
タグIDを指定する
例えば特定のタグ(ID=5)のリンクを出す場合:
edit_tag_link('編集', '', '', 5);
edit_tag_link()のテーマでの活用例
タグアーカイブページ(tag.php
)のヘッダー部分に設置する例:
<header class="archive-header">
<h1 class="archive-title"><?php single_tag_title(); ?></h1>
<?php edit_tag_link('このタグを編集', '<p class="edit-link">', '</p>'); ?>
</header>
edit_tag_link()のカスタマイズ例
CSSで装飾する
.edit-link a {
background: #f1f1f1;
padding: 4px 8px;
border-radius: 3px;
font-size: 0.9em;
text-decoration: none;
}
.edit-link a:hover {
background: #e1e1e1;
}
edit_term_link()との違い
関数 | 対応範囲 |
---|---|
edit_tag_link() | タグだけ |
edit_term_link() | タグ・カテゴリー・カスタムタクソノミー |
edit_tag_link()
は「post_tag」専用です。
edit_term_link()の書式
edit_term_link(
string $link = null,
string $before = '',
string $after = '',
int $term = null,
string $taxonomy = 'post_tag'
)
新規開発ではedit_term_link()
を使い、タクソノミーを指定する方が汎用的です。
表示されないときの確認ポイント
- ログイン中ですか?
- 管理者権限がありますか?
$tag
に正しいIDを指定していますか?- テーマに
wp_head()
が正しく入っていますか?
edit_tag_link()のよくある質問
- ゲストユーザーも見えますか?
-
見えません。権限が必要です。
- カスタムタクソノミーには使えますか?
-
edit_tag_link()
では使えません。edit_term_link()
を使ってください。 - URLだけ取得できますか?
-
get_edit_term_link()
を使います。例:
$url = get_edit_term_link($term_id, 'post_tag');
応用:条件分岐で表示を制御
管理者だけに表示したい場合は権限チェックを追加します。
if (current_user_can('manage_categories')) {
edit_tag_link('タグ編集');
}
実用コード例:カスタムHTMLリンク
「編集」をボタン風に表示
<?php if ( current_user_can('manage_categories') ) : ?>
<?php edit_tag_link('📝 編集', '<div class="edit-button">', '</div>'); ?>
<?php endif; ?>
CSS:
.edit-button a {
display: inline-block;
background: #0073aa;
color: #fff;
padding: 6px 12px;
border-radius: 3px;
text-decoration: none;
}
.edit-button a:hover {
background: #005177;
}
まとめ
edit_tag_link()
はタグ編集リンクをHTMLで出力する- ログイン+権限があるユーザーだけ表示
$link
,$before
,$after
,$tag
で自由にカスタマイズ可能- 新規開発は
edit_term_link()
推奨
ポイント
- タグ専用なら
edit_tag_link()
でもOK - カスタムタクソノミーなら
edit_term_link()
- 権限管理は自動
- URLだけ欲しい場合は
get_edit_term_link()