概要
ure_post_edit_access_authors_list
は、WordPressのプラグイン「User Role Editor」で使用されるフィルタです。このフィルタは、特定のユーザーの投稿編集アクセスを制御する際に便利です。特に、ユーザーの役割によって異なる編集権限を調整する場合に役立ちます。以下のような機能を実装する際によく使われます。
- ユーザーごとに異なる投稿編集権限を設定
- 特定の投稿タイプに対する編集アクセスを細かく制御
- 投稿の公開や非公開の権限を制限
- 複数のユーザー役割に対して一括で権限を変更
- カスタムフィールドやメタデータへのアクセス権を制御
- 除外リストを作成し、特定のユーザーを編集権限から除外
構文
apply_filters( 'ure_post_edit_access_authors_list', $authors_list, $post_id );
パラメータ
- $authors_list: 編集可能な著者のユーザー ID の配列。
- $post_id: 編集対象の投稿の ID。
戻り値
このフィルタは、編集アクセス可能な著者のユーザー ID の配列を返します。
プラグインとWordPressのバージョン
- User Role Editor バージョン: 4.0以上
- WordPress バージョン: 4.0以上
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプルコード 1: 特定のユーザーを編集可能にする
このコードは、特定のユーザー(ここではユーザーID 10)が投稿を編集できるようにします。
add_filter( 'ure_post_edit_access_authors_list', 'customize_edit_access', 10, 2 );
function customize_edit_access( $authors_list, $post_id ) {
$authors_list[] = 10; // ユーザーID 10を編集可能な著者に追加
return $authors_list;
}
サンプルコード 2: 特定の投稿タイプに制限を設ける
このコードは、特定の投稿タイプ(ここでは ‘custom_post_type’)に制限を設けます。
add_filter( 'ure_post_edit_access_authors_list', 'restrict_edit_access_by_post_type', 10, 2 );
function restrict_edit_access_by_post_type( $authors_list, $post_id ) {
$post_type = get_post_type( $post_id );
if ( $post_type == 'custom_post_type' ) {
// 条件により著者リストを制限
return array( 1, 2 ); // ユーザーID 1と2のみに制限
}
return $authors_list;
}
サンプルコード 3: 管理者のみ編集可能にする
このコードは、管理者ユーザーのみが投稿を編集できるようにします。
add_filter( 'ure_post_edit_access_authors_list', 'allow_admin_only_edit', 10, 2 );
function allow_admin_only_edit( $authors_list, $post_id ) {
if ( ! current_user_can('administrator') ) {
return array(); // 管理者以外は空の配列を返す
}
return $authors_list; // 管理者のみを返す
}
サンプルコード 4: 特定の投稿に基づいてアクセスを制御
このコードは、特定の投稿IDに基づいてアクセスを制御します。
add_filter( 'ure_post_edit_access_authors_list', 'control_access_by_post_id', 10, 2 );
function control_access_by_post_id( $authors_list, $post_id ) {
if ( $post_id === 123 ) { // 特定の投稿ID
return array( 5, 6 ); // ユーザーID 5と6のみにアクセスを許可
}
return $authors_list;
}
サンプルコード 5: 複数の条件でアクセスを制限
このコードは、状況に応じてアクセスを制限します。
add_filter( 'ure_post_edit_access_authors_list', 'conditional_edit_access', 10, 2 );
function conditional_edit_access( $authors_list, $post_id ) {
if ( ! is_user_logged_in() ) {
return array(); // ログインしていない場合は空の配列を返す
}
if ( current_user_can('editor') ) {
return $authors_list; // エディタの場合は元のリストを返す
}
return array(); // その他は空の配列を返す
}
すべてのサンプルコードは著作権フリーであり、上記の機能を実現するために使用されます。これらのコードは、特定のニーズに応じてカスタマイズすることができます。