サポート » 使い方全般 » ユーザーが作成した記事を管理画面で他のユーザーに表示させない方法

  • こんにちは。
    「Report」というカスタム投稿の記事を、サイトに登録したユーザーが新規に作成できるようにし、それらを管理画面から編集できるようにしたいのですが、
    その際に、他のユーザーが管理画面に入った時に一覧画面に表示させないようにすることは可能でしょうか?

    例えば、
    ユーザーA、ユーザーBが存在。
    ユーザーAが作成したカスタム投稿の記事はユーザーAのみが管理画面から編集・削除ができ、
    ユーザーAが作成したカスタム投稿の記事はユーザーBからは見えず、管理画面から編集・削除ができない。

    上記の実現方法について、どなたかカスタマイズの方法を教えていただけると助かります。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • モデレーター jim912

    (@jim912)

    他ユーザーの投稿を編集できないユーザーのみ表示させないようにするなら、こんな感じかと思います。

    function exclude_other_posts( $wp_query ) {
        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' );
1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「ユーザーが作成した記事を管理画面で他のユーザーに表示させない方法」には新たに返信することはできません。