author_can()


WordPressのauthor_can()関数は、指定された投稿の著者が特定の権限を持っているかどうかを確認するために使用されます。

構文

author_can( int $post_id, string $capability );

引数の説明:

  • $post_id(int)—権限を確認する投稿のID。
  • $capability(string)—確認する権限のスラッグ(例: ‘edit_posts’, ‘delete_posts’)。

例1: 投稿の編集権限を確認する

この例では、投稿IDがget_the_ID()で取得される投稿の著者が編集権限を持っているかどうかを確認します。

<?php if ( author_can( get_the_ID(), 'edit_posts' ) ) { echo '編集可能'; } else { echo '編集不可'; } ?>

例2: 特定の投稿IDで権限を確認する

この例では、投稿IDが123の投稿の著者が削除権限を持っているかどうかを確認します。

<?php if ( author_can( 123, 'delete_posts' ) ) { echo '削除可能'; } else { echo '削除不可'; } ?>

例3: カスタム権限を確認する

この例では、投稿の著者がカスタム権限「manage_options」を持っているかどうかを確認します。

<?php if ( author_can( get_the_ID(), 'manage_options' ) ) { echo 'カスタム権限あり'; } else { echo 'カスタム権限なし'; } ?>

例4: 複数の権限を確認する

この例では、投稿の著者が複数の権限を持っているかどうかを確認します。

<?php if ( author_can( get_the_ID(), 'edit_posts' ) && author_can( get_the_ID(), 'delete_posts' ) ) { echo '複数権限あり'; } else { echo '権限不足'; } ?>

例5: 権限がない場合の処理

この例では、投稿の著者が権限を持っていない場合に特定のメッセージを表示します。

<?php if ( !author_can( get_the_ID(), 'publish_posts' ) ) { echo '公開権限なし'; } ?>

例6: 権限に基づいてコンテンツを表示

この例では、投稿の著者が権限を持っている場合にのみコンテンツを表示します。

<?php if ( author_can( get_the_ID(), 'edit_others_posts' ) ) { echo 'このコンテンツは編集可能です'; } ?>

例7: 権限チェックを関数内で使用

この例では、関数内でauthor_can()を使用して権限を確認します。

<?php function check_author_capability( $post_id, $capability ) { return author_can( $post_id, $capability ); } ?>

例8: 権限チェックとリダイレクト

この例では、投稿の著者が権限を持っていない場合にリダイレクトします。

<?php if ( !author_can( get_the_ID(), 'edit_posts' ) ) { wp_redirect( home_url() ); exit; } ?>

注意点

  • author_can()は投稿の著者の権限のみを確認します。他のユーザーの権限を確認する場合はcurrent_user_can()を使用してください。
  • 権限のスラッグは正確に指定する必要があります。誤ったスラッグを指定すると、常にfalseが返されます。

関連機能: