source

WordPress: 작성자 상자에 표시되지 않는 사용자 지정 사용자

ittop 2023. 3. 8. 21:50
반응형

WordPress: 작성자 상자에 표시되지 않는 사용자 지정 사용자


Wordpress에 사용자 지정 사용자 유형을 추가했습니다. 사용자 지정 게시 유형은 작성자를 지원합니다(아래 참조).사용자 지정 사용자 유형은 '게시 게시'를 제외한 모든 작성자 권한을 가지지만 게시물에 할당할 수 있는 작성자 목록에는 없습니다.

내가 뭘 잘못하고 있지?

코드:

if (!get_role('member')) {
        add_role('member', 'SFUK Member', array(
            'delete_posts' => true,
            'edit_posts' => true,
            'read' => true,
            'upload_files' => true,
            'edit_published_posts' => true,
            'delete_published_posts' => true
        ));
}

커스텀 투고 타입은 다음과 같습니다.

$args = array(
    'labels' => $labels,
    'public' => true,
    'publicly_queryable' => true,
    'show_ui' => true,
    'query_var' => true,
    'rewrite' => true,
    'capability_type' => 'post',
    'hierarchical' => true,
    'menu_position' => 0,
    'supports' => array('title', 'editor', 'thumbnail', 'page-attributes', 'author')
);

if (!post_type_exists('ent')) {
    register_post_type('ent', $args);
    remove_post_type_support('ent', 'editor');

}

더 필요한 정보가 있으면 알려주세요.

작성자 드롭다운은 다음 호출이 생성됩니다.

wp_dropdown_users( array(
    'who' => 'authors',
    'name' => 'post_author_override',
    'selected' => empty($post->ID) ? $user_ID : $post->post_author,
    'include_selected' => true
) );

whoargument는 적어도 '작성자' 역할을 가진 사용자만 나열됨을 의미하며 Codex 페이지에는 현재 해당 역할이 '작성자' 또는 빈(모든 사용자를 의미)으로 표시됩니다.이 함수에는 필터가 있지만 HTML을 입력으로 사용합니다.사용자에 대한 새 쿼리를 만든 후 새 HTML 드롭다운을 출력할 수 있습니다.이것이 당신의 문제를 해결하는 첫 번째 방법입니다.

그러나 'who'가 'authors'로 설정된 이 함수는 사용자 수준이 0이 아닌 사용자를 검색하는데, 이는 사용자 수준이 오래 전에 폐지되었기 때문에 상당히 이상합니다. 문제를 해결하려면 새로운 역할에 'level_1' 기능을 추가할 것을 권장하는 관련 버그 보고서를 Trac에서 찾았습니다.이것은 클린 솔루션은 아니지만 필터와 모든 HTML을 처음부터 작성하는 것보다 훨씬 쉽습니다.

편집: 세 번째 보다 심플한 솔루션이 방금 떠올랐습니다.플러그인으로 커스텀 역할을 작성했지만 항상 기존 역할에서 기능을 복사한 후 수정했기 때문에 이 문제를 알아차리지 못했습니다.이렇게 하면 기능을 잊지 않고 이 버그를 해결할 수 있습니다.

언급URL : https://stackoverflow.com/questions/6330008/wordpress-custom-users-not-appearing-in-author-box

반응형