programing

편집 후 작성자 목록 변경을 위한 WordPress Filter(워드프레스 필터) 작성자 상자

mailnote 2023. 9. 13. 22:52
반응형

편집 후 작성자 목록 변경을 위한 WordPress Filter(워드프레스 필터) 작성자 상자

사용자 지정 게시물 유형에 대한 게시물 편집 페이지의 작성자 선택 드롭다운에서 사용자 목록을 변경합니다.이것에 사용할 수 있는 필터 후크가 있습니까?내가 원하는 대로 할 수 있는 필터 후크에 대한 정보를 찾을 수 없었습니다.

후크는 (이론적으로) 사용자 배열을 반환할 수 있어야 하며 이는 하단의 선택 상자를 채우는 사용자가 될 것입니다.제가 이렇게 하고 싶은 이유는 게시물 유형별로 사용자를 역할별로 조건부로 걸러낼 수 있기 때문입니다.관리자(또는 다른 관리자)로서 사용자를 작성자로 만들기 전에 사용자가 특정 역할을 가지고 있는지 확인할 필요가 없습니다.

코드 예:

add_filter('example_filter', 'my_custom_function');
function my_custom_function ( $users ){

    // Get users with role 'my_role' for post type 'my_post_type'
    if( 'my_post_type' == get_post_type() ){
        $users = get_users( ['role' => 'my_role'] );
    }

    // Get users with role 'other_role' for post type 'other_post_type'
    if( 'other_post_type' == get_post_type() ){
        $users = get_users( ['role' => 'other_role'] );
    }

    return $users;
}

후크 'wp_dropdown_users_args'를 사용할 수 있습니다.

테마의 기능에 아래 코드 조각을 추가합니다.php 파일.

add_filter( 'wp_dropdown_users_args', 'change_user_dropdown', 10, 2 );

function change_user_dropdown( $query_args, $r ){
    // get screen object
    $screen = get_current_screen();

    // list users whose role is e.g. 'Editor' for 'post' post type
    if( $screen->post_type == 'post' ):
        $query_args['role'] = array('Editor');

        // unset default role 
        unset( $query_args['who'] );
    endif;

    // list users whose role is e.g. 'Administrator' for 'page' post type
    if( $screen->post_type == 'page' ):
        $query_args['role'] = array('Administrator');

        // unset default role 
        unset( $query_args['who'] );
    endif;

    return $query_args;
}

이것이 당신에게 적합한지 아닌지 알려주십시오.

언급URL : https://stackoverflow.com/questions/37247372/wordpress-filter-for-changing-author-list-in-edit-post-authors-box

반응형