it-swarm-eu.dev

Omezit typ vlastního příspěvku pouze na roli správce webu

Jak mohu tento typ vlastního příspěvku odebrat, aby se nezobrazoval v řídicím panelu pro uživatele, kteří nejsou správci?

/* Add Websites Custom Post Type */
add_action( 'init', 'create_website_type' );
function create_website_type() {

    register_post_type( 'website',
        array(
            'labels' => array(
                'name' => __( 'Websites' ),
                'singular_name' => __( 'Website' ),
                'add_new' => __( 'Add New Website' ),
                'add_new_item' => __( 'Add New Website' ),
                'edit' => __( 'Edit Website' ),             
                'edit_item' => __( 'Edit Website' ),                
                'new_item' => __( 'Add New Website' ),              
                'view' => __( 'View Website' ),         
                'view_item' => __( 'View Website' ),                    
                'search_items' => __( 'Search Websites' ),  
                'not_found' => __( 'No Websites Found' ),
                'not_found_in_trash' => __( 'No Websites found in Trash' ),                                         
            ),
            'description' => __('Websites to be shown in Resources section.'),
            'public' => true,
            'show_ui' => true,
            'publicly_queryable' => true,
            'exclude_from_search' => false,
            'menu_position' => 20,
            'supports' => array('title', 'editor'),
            'can_export' => true        
        )
    ); 
    remove_post_type_support('website','editor'); 
}
15
urok93

register_post_type() akceptuje parametr capabilities ve svých argumentech. Možné hodnoty viz get_post_type_capabilities(). Z komentářů:

Ve výchozím nastavení je sedm klíčů přijato jako součást pole schopností:

  • edit_post, read_post a delete_post jsou meta schopnosti, které jsou pak obvykle mapovány na odpovídající primitivní funkce v závislosti na kontextu, který by byl post editován/čten/vymazán a uživatel nebo role by byla kontrolována. Tyto schopnosti by tedy obecně nebyly poskytnuty přímo uživatelům ani rolím.

  • edit_posts - Určuje, zda lze objekty tohoto typu příspěvku upravovat.

  • edit_others_posts - Řídí, zda lze objekty tohoto typu vlastněné jinými uživateli upravovat. Pokud typ příspěvku nepodporuje autora, bude se chovat jako edit_posts.
  • publish_posts - Řídí objekty publikování tohoto typu příspěvku.
  • read_private_posts - Určuje, zda lze číst soukromé objekty.

Tyto čtyři primitivní funkce jsou kontrolovány v jádru na různých místech. Existuje také sedm dalších primitivních schopností, na které se nevztahuje přímo v jádře, s výjimkou map_meta_cap(), které má tři výše uvedené meta schopnosti a převádí je do jedné nebo více primitivních schopností, které musí být v závislosti na kontextu zkontrolovány proti uživateli nebo roli. .

  • read - Určuje, zda lze číst objekty tohoto typu příspěvku.
  • delete_posts - Určuje, zda lze objekty tohoto typu příspěvku odstranit.
  • delete_private_posts - Určuje, zda mohou být soukromé objekty odstraněny.
  • delete_published_posts - Určuje, zda mohou být publikované objekty odstraněny.
  • delete_others_posts - Řídí, zda lze objekty vlastněné jinými uživateli smazat. Pokud typ příspěvku nepodporuje autora, bude se chovat jako delete_posts.
  • edit_private_posts - Určuje, zda lze soukromé objekty upravovat.
  • edit_published_posts - Určuje, zda lze publikované objekty upravovat.

Tyto další funkce se používají pouze v map_meta_cap(). Standardně jsou tedy přiřazeny pouze tehdy, když je typ příspěvku registrován s argumentem 'map_meta_cap' nastaveným na true (výchozí hodnota je false).

V argumentech pro registraci přidejte:

'capabilities' => array(
    'edit_post'          => 'update_core',
    'read_post'          => 'update_core',
    'delete_post'        => 'update_core',
    'edit_posts'         => 'update_core',
    'edit_others_posts'  => 'update_core',
    'delete_posts'       => 'update_core',
    'publish_posts'      => 'update_core',
    'read_private_posts' => 'update_core'
),
11
fuxia