MENU

edit_post_link()

edit_post_link() は、投稿や固定ページの編集画面へのリンクを生成するためのテンプレートタグです。このタグを使用することで、ログイン中の管理者や投稿者が簡単に投稿を編集できるようになります。

目次

機能の説明

edit_post_link() は、現在表示されている投稿や固定ページに対して、編集リンクを出力します。WordPressの管理者や投稿者が、自分の投稿を直接編集するために使用されます。

  • ユーザー権限に基づいてリンクが表示され、編集権限のないユーザーには表示されません。
  • リンクテキストやHTMLのラッパー要素を指定でき、デザインの調整が容易です。

シンプルなコード例

edit_post_link('この投稿を編集');

出力例

<a href="https://example.com/wp-admin/post.php?post=123&action=edit">この投稿を編集</a>

使い方の解説

このタグは、テーマのテンプレートファイル(例:single.phppage.php)内で使用します。投稿やページが表示される場所でこのリンクを設置することで、投稿者や管理者が簡単に編集画面に遷移できるようになります。

引数

  1. $text(任意): リンクテキストを指定します(例:"編集する")。
  2. $before / $after(任意): リンクの前後に追加する文字列またはHTML。
  3. $id(任意): 編集リンクを表示する投稿のID(省略時は現在の投稿IDが使用されます)。

投稿に編集リンクを追加する

edit_post_link('編集', '<p>', '</p>'); 

この例では、「編集」というリンクが <p> タグで囲まれて出力されます。編集権限を持つユーザーのみがこのリンクを確認できます。

出力例

<p><a href="https://example.com/wp-admin/post.php?post=123&action=edit">編集</a></p>

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

the_ID()

the_ID() は、現在表示されている投稿や固定ページのIDを取得するテンプレートタグです。edit_post_link() と組み合わせて、特定の投稿IDに基づいた編集リンクを生成することが可能です。

if (have_posts()) {
    while (have_posts()) {
        the_post();
        the_title('<h2>', '</h2>');
        the_content();
        edit_post_link('この投稿を編集', '<p>', '</p>', get_the_ID());
    }
}

この例では、投稿が表示されるたびに、その投稿IDに基づいた編集リンクが生成されます。

current_user_can()

current_user_can() は、現在のユーザーが指定された権限を持っているかどうかを確認するテンプレートタグです。これを使って、管理者や投稿者のみ編集リンクを表示するようにカスタマイズできます。

if (current_user_can('edit_post', get_the_ID())) {
    edit_post_link('編集', '<p>', '</p>');
}

このコードでは、現在のユーザーが投稿の編集権限を持っている場合のみ、編集リンクが表示されます。

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

get_post() で投稿の詳細情報を取得

get_post() を使用すると、特定の投稿の詳細情報を取得できます。

$post = get_post(123);
echo '投稿タイトル: ' . $post->post_title . '<br>';
echo '投稿者: ' . get_the_author_meta('display_name', $post->post_author);

この例では、IDが123の投稿のタイトルと投稿者名を取得して表示しています。

出力できる情報

  • post_title: 投稿のタイトル
  • post_content: 投稿の本文
  • post_author: 投稿者のID
  • post_date: 投稿された日時
  • post_status: 投稿の公開状態(例:publishdraft

使用する事で想定されるトラブル

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

投稿の編集権限がないユーザーにはリンクが表示されません。

解決策

管理者や投稿者としてログインしているか確認してください。

if (current_user_can('edit_post', get_the_ID())) {
    edit_post_link('編集');
}

投稿IDが取得できない

テーマのテンプレートファイルで投稿IDが適切に取得されていない可能性があります。

解決策

get_the_ID()the_ID() を使用して、正確な投稿IDを取得します。

Q&A

なぜ編集リンクが表示されないのですか?

編集リンクは、管理者やその投稿の作成者など、編集権限を持つユーザーにのみ表示されます。

投稿IDを指定しない場合、どの投稿の編集リンクが生成されますか?

デフォルトでは、現在表示されている投稿または固定ページのIDが使用されます。

編集リンクにCSSクラスを追加できますか?

追加するには、HTMLラッパー要素を使用します。

edit_post_link('編集', '<span class="edit-link">', '</span>');

まとめ

edit_post_link() は、WordPressテーマで投稿やページに編集リンクを設置するための便利なテンプレートタグです。管理者や投稿者が簡単に編集画面にアクセスできるようになります。get_the_ID()current_user_can() といった関連タグと一緒に使うことで、柔軟なカスタマイズが可能です。
想定されるトラブルに対しては、ユーザー権限や投稿IDの取得方法を確認することで対応できます。

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

コメント

コメントする

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

目次