WordPressで複数の投稿者アカウント(ユーザー)を用意して記事を作成する際、管理画面の一覧ページで別のユーザーの記事が見えてしまわないよう、表示制御する方法のご紹介です。
WP管理画面の一覧ページで他のユーザーの投稿を非表示にする
ご利用のテーマのfunctions.phpに以下のコードを追記します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
function exclude_other_posts( $wp_query ) { if (!current_user_can('administrator')) { if ( isset( $_REQUEST['post_type'] ) && post_type_exists( $_REQUEST['post_type'] ) ) { $post_type = get_post_type_object( $_REQUEST['post_type'] ); $cap_type = $post_type->cap->edit_other_posts; } else { $cap_type = 'edit_others_posts'; } if ( is_admin() && $wp_query->is_main_query() && ! $wp_query->get( 'author' ) && ! current_user_can( $cap_type ) ) { $user = wp_get_current_user(); $wp_query->set( 'author', $user->ID ); } } } add_action( 'pre_get_posts', 'exclude_other_posts' ); |
コメント