edit_tag_link()

edit_tag_link()
目次

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()の引数

引数説明
$linkstringリンクのテキスト(デフォルト: Edit This Tag
$beforestringリンクの直前に出すHTML
$afterstringリンクの直後に出すHTML
$tagintタグ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()
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

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

目次