2016-07-07 53 views
0

我從頭開始構建wordpress主題。我有一些經驗,但我對我的定製非常細緻,所以在這一點上我遇到了一些問題。WordPress的帖子類型帖子混合在後端非admine角色

問題如下:我創建了一些特殊的帖子類型,並具有自己的功能並允許一些自定義的新角色訪問它們。一切都有效,但是當這個新角色 - '寫作者'在後端撰寫時,我創建的不同文章類型的帖子在帖子類型儀表板中混淆了,就在它列出帖子的地方。

所以我們有這些文章類型: - 評論 - 預覽

的評論儀表板同時列出了評論,並通過女作家寫的預覽文章和同樣的情況在預覽儀表板。

這不會發生在管理員。這就是我認爲這是一個許可的事情。

下面是帖子類型代碼:

// ==================================== // 
// R E V I E W S      // 
// ==================================== // 
// Register Custom Post Type 

function custom_post_type_reviews() { 

$labels = array(
    'name'     => _x('Reviews', 'Post Type General Name', 'text_domain'), 
    'singular_name'   => _x('Review', 'Post Type Singular Name', 'text_domain'), 
    'menu_name'    => __('Reviews', 'text_domain'), 
    'name_admin_bar'  => __('Reviews', 'text_domain'), 
    'archives'    => __('Reviews archive', 'text_domain'), 
    'parent_item_colon'  => __('Parent Item:', 'text_domain'), 
    'all_items'    => __('All the reviews', 'text_domain'), 
    'add_new_item'   => __('Add new review', 'text_domain'), 
    'add_new'    => __('Add new', 'text_domain'), 
    'new_item'    => __('Add item', 'text_domain'), 
    'edit_item'    => __('Edit item', 'text_domain'), 
    'update_item'   => __('Update item', 'text_domain'), 
    'view_item'    => __('View item', 'text_domain'), 
    'search_items'   => __('Search Item', 'text_domain'), 
    'not_found'    => __('Not found', 'text_domain'), 
    'not_found_in_trash' => __('Not found in trash', 'text_domain'), 
    'featured_image'  => __('Featured image', 'text_domain'), 
    'set_featured_image' => __('Add featured image', 'text_domain'), 
    'remove_featured_image' => __('Remove featured image', 'text_domain'), 
    'use_featured_image' => __('Use featured image', 'text_domain'), 
    'insert_into_item'  => __('insert into item', 'text_domain'), 
    'uploaded_to_this_item' => __('Update to this item', 'text_domain'), 
    'items_list'   => __('Items lists', 'text_domain'), 
    'items_list_navigation' => __('Items list navigation', 'text_domain'), 
    'filter_items_list'  => __('Filter items list', 'text_domain'), 
); 

$capabilities = array(
    'publish_posts' => 'publish_reviews', 
    'edit_posts' => 'edit_reviews', 
    'edit_others_posts' => 'edit_others_reviews', 
    'delete_posts' => 'delete_reviews', 
    'delete_others_posts' => 'delete_others_reviews', 
    'read_private_posts' => 'read_private_reviews', 
    'edit_post' => 'edit_review', 
    'delete_post' => 'delete_review', 
    'read_post' => 'read_review', 
); 

$args = array(
    'label'     => __('Reviews', 'text_domain'), 
    'description'   => __('Reviews', 'text_domain'), 
    'labels'    => $labels, 
    'supports'    => array('title', 'editor', 'thumbnail', 'excerpt', 'author','comments'), 
    'taxonomies'   => array('categories', 'post_tag',), 
    'hierarchical'   => true, 
    'public'    => true, 
    'show_ui'    => true, 
    'show_in_menu'   => true, 
    'menu_position'   => 5, 
    'menu_icon'    => 'dashicons-media-text', 
    'show_in_admin_bar'  => true, 
    'show_in_nav_menus'  => true, 
    'can_export'   => true, 
    'has_archive'   => true,   
    'exclude_from_search' => false, 
    'publicly_queryable' => true, 
    'map_meta_cap'   => true, 
    'capability_type'  => 'review', 
    'capabilities'  => $capabilities, 
); 
register_post_type('reviews', $args); 

} 
add_action('init', 'custom_post_type_reviews', 0); 

要創建角色,我在叫各位委員安裝一個插件,我安裝的分配給我創造了「角色」的能力的圖像。 Role capabilities

我不知道這可能是什麼,但我不是一個字按專業人士。

謝謝!!!

回答

0

我在map_meta_cap,capability_typecapabilities的組合中看到了各種潛在的錯誤請看the Codex所有這些錯誤。我認爲應該在以下情況下工作:

(1)

  • capability_type設定爲review
  • map_meta_cap設置爲false
  • 不需要使用capabilities

角色功能中的角色應該與插件a相匹配nd單數到the Codex - 我的意思是「評論」或「評論」。

(2)

  • capability_type組作爲review
  • map_meta_cap集到true
  • 使用capabilities - 檢查Codex

檢查內部$capabilites陣列是匹配的$capabilities在角色編輯器中使用。

0

我發現什麼是混合職位。正是我用這個函數來列出作者的帖子,即使是在作者頁面中的自定義帖子。

function custom_post_author_archive(&$query) 
{ 
    if ($query->is_author) 
     $query->set('post_type', all_post_types()); 
    remove_action('pre_get_posts', 'custom_post_author_archive'); 
} 
add_action('pre_get_posts', 'custom_post_author_archive'); 
相關問題