MENU

edit_tag_link()

edit_tag_link() は、特定のタグ(カテゴリーやカスタム分類も含む)を編集するためのリンクを生成するテンプレートタグです。このリンクは、編集権限のあるユーザーにのみ表示されます。

目次

機能の説明

edit_tag_link() は、指定したタグ(またはターム)に対する編集リンクを生成し、WordPressの管理画面でそのタームを編集できるようにします。
このテンプレートタグは、ユーザーが投稿に付与されたタグを編集する際に役立ちます。

  • このタグを使うと、「タグの編集画面」へのリンクを簡単に出力できます。
  • リンクは管理者や編集者など、編集権限のあるユーザーにのみ表示されます。

シンプルなコード例

edit_tag_link('このタグを編集', '<p>', '</p>');

出力例

<p><a href="https://example.com/wp-admin/term.php?taxonomy=post_tag&tag_ID=123">このタグを編集</a></p>

使い方の解説

edit_tag_link() を使うと、管理者画面へのタグ編集リンクをHTMLタグで囲んで表示できます。

引数

  1. $link(任意): リンクテキスト。デフォルトは 'Edit Tag'
  2. $before(任意): リンクの前に挿入するHTML。
  3. $after(任意): リンクの後に挿入するHTML。
  4. $tag_id(任意): 編集対象のタグ(またはターム)のID。

タグ編集リンクの表示例

if (current_user_can('edit_terms')) {
    edit_tag_link('タグを編集', '<span>', '</span>');
}

この例では、edit_tag_link()タグを編集するリンクを生成し、<span>タグで囲んでいます。current_user_can('edit_terms')で、現在のユーザーがタグ編集権限を持っているかを確認しています。

一緒に使うことが多い関連タ

get_the_terms()

get_the_terms() は、投稿に紐づけられたタグやカスタム分類のタームを取得するテンプレートタグです。

$terms = get_the_terms(get_the_ID(), 'post_tag');
if ($terms && !is_wp_error($terms)) {
    foreach ($terms as $term) {
        echo '<p>' . $term->name . '</p>';
        edit_tag_link('編集', '<span>', '</span>', $term->term_id);
    }
}

この例では、get_the_terms()で現在の投稿に付与されたタグを取得し、edit_tag_link()でそれぞれのタグに編集リンクを付けています。

edit_term_link()

edit_term_link() は、特定のターム(カテゴリーやタグを含む)の編集リンクを取得するためのテンプレートタグです。edit_tag_link()はタグに特化していますが、edit_term_link()はあらゆるタクソノミーに対応しています。

追加情報を取得したい場合

get_term() でタグの詳細を取得

get_term() を使えば、特定のタグに関する詳細情報を取得できます。

$tag = get_term(123, 'post_tag');
echo 'タグ名: ' . $tag->name . '<br>';
echo 'スラッグ: ' . $tag->slug . '<br>';
edit_tag_link('このタグを編集', '<p>', '</p>', $tag->term_id);

この例では、get_term()で取得したタグの名前とスラッグを表示し、そのタグに対応する編集リンクを作成しています。

出力できる情報

  • name: タグの名前
  • slug: タグのスラッグ(URLフレンドリーな名前)
  • description: タグの説明
  • count: タグが付けられた投稿の数

想定されるトラブル

タグ編集リンクが表示されない

ユーザーがタグを編集する権限を持っていない可能性があります。

解決策

current_user_can() を使用して、権限を確認してください。

if (current_user_can('edit_terms')) {
    edit_tag_link('タグを編集');
}

Q&A

edit_tag_link()edit_term_link() の違いは何ですか?

edit_tag_link() はタグ(post_tag)専用の編集リンクを生成するテンプレートタグですが、edit_term_link() はカテゴリーやカスタムタクソノミーなど、すべてのタームの編集リンクに対応します。

タグ編集リンクが表示されない理由は?

ユーザーに適切な権限(edit_terms)がない場合、編集リンクは表示されません。

カスタムタクソノミーにedit_tag_link()を使えますか?

いいえ、edit_tag_link()post_tag専用です。カスタムタクソノミーにはedit_term_link()を使ってください。

まとめ

edit_tag_link() は、特定のタグを編集するためのリンクを生成するテンプレートタグです。タグに編集リンクを表示することで、管理者や編集者が素早くタグを編集できます。タグの取得にはget_the_terms()などの関連タグと組み合わせることが一般的です。

このテンプレートタグを使用する際は、ユーザーの権限を確認することが重要です。また、タグ編集リンクは、post_tag以外のタクソノミーには対応していないため、カスタムタクソノミーを扱う場合はedit_term_link()を使用してください。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

This site uses Akismet to reduce spam. Learn how your comment data is processed.

目次