2011-06-13 6 views
5


내가 워드 프레스에 사용자 정의 사용자 유형을 추가 한의 사용자 정의 포스트 유형는 저자 (아래 참조)를 지원합니다. 사용자 정의 사용자 유형은 '게시물 게시'를 제외하고 작성자의 모든 권한을 가지지 만 해당 게시물에 지정할 수있는 작성자 목록에는이 아니며 이 아닙니다.워드 프레스 저자 : 상자에 표시되지 사용자 정의 사용자

내가 뭘 잘못하고 있니?

코드 :

$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'); 

} 

더 자세한 정보가 필요한 경우 알려줘 : 여기

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 
     )); 
} 

사용자 정의 포스트 유형입니다.

+0

사용자 권한이 wp-admin에서 작동합니까? 당신이 그것을 기대하는 방법? ... 또한 게시 된 경우 저자 이름을 표시하는 사용자 정의 테마/위젯을 사용하고 있습니까?, 그것은 잘못된 값을 표시합니까?, 또는 단지 비어 있습니다. 이것이 슬프게 잘못 될 수있는 많은 방법이 있습니다. [ – PicoCreator

+0

코드 스 니펫의 출처는 = P – PicoCreator

답변

6

저자 드롭 다운 메뉴는 다음 호출 생성됩니다

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

who 인수는 적어도 '저자'역할을 가진 사용자 만이 표시됩니다 것을 의미하며, the Codex page 현재이 있다고 말한다을하거나 '저자'또는 빈 (모든 사용자를 의미 함). 이 함수의 필터는 이고이지만 HTML을 입력으로 사용합니다. 사용자에 대한 새 쿼리를 만든 다음 새 HTML 드롭 다운을 출력 할 수 있습니다. 이것이 문제를 해결하는 첫 번째 방법입니다.

그러나 'who'가 'authors'로 설정된이 함수는 사용자 수준이 오래 전에 사용되지 않으므로 수준이 0이 아닌 사용자를 검색합니다. Trac에 a related bug report을 발견했습니다. 'level_1'기능을 새 역할에 추가하여이 문제를 해결할 것을 권장합니다. 이것은 깨끗한 해결책은 아니지만 필터와 모든 HTML을 처음부터 만드는 것보다 훨씬 쉽습니다.

편집 : 세 번째 훨씬 더 간단한 해결책은 내 마음에 온 : 나는 플러그인과 사용자 정의 역할을 생성하지만, 난 항상 복사 기존 역할에서 기능 한 다음 수정했기 때문에이 문제를 발견 적이 없다. 이렇게하면 모든 기능을 잊지 않고이 버그를 해결할 수 있습니다.

+1

+1 WP 버그에 대한 링크 –

+0

좋아, 레벨 1 기능을 추가했지만 도움이되지 않았습니다. . 기존 역할의 기능을 어떻게 복사 할 수 있습니까? 나는 그것을 할 수있는 깔끔한 방법을 생각할 수 없다. – Sean

+0

역할이 이미 존재하는 경우 add_role은 아무 것도 수행하지 않으므로 ('if'가 필요하지 않음) 이전에 작성한 사용자 정의 역할을 제거했는지 확인하십시오. 어쨌든, 내가 한 방법은 다음과 같습니다. http://wordpress.org/support/topic/creating-a-role-based-on-another?replies=2 및 다른 예 : http://wordpress.org/support/ topic/add-a-custom-role-based-default-role? replies = 1 –

관련 문제