argumentos de tipo de capacidad de Wordpress

2

No sé cómo descubrir qué está mal con mi código. Por qué los tipos de publicaciones personalizadas "Libro" no se muestran en mi panel de control, me registré como administrador y uso la última versión de WordPress instalada 3.4.1

Aquí con mi código

function codex_custom_init() {

  $labels = array(
    'name' => _x('Books', 'post type general name'),
    'singular_name' => _x('Book', 'post type singular name'),
    'add_new' => _x('Add New', 'book'),
    'add_new_item' => __('Add New Book'),
    'edit_item' => __('Edit Book'),
    'new_item' => __('New Book'),
    'all_items' => __('All Books'),
    'view_item' => __('View Book'),
    'search_items' => __('Search Books'),
    'not_found' =>  __('No books found'),
    'not_found_in_trash' => __('No books found in Trash'), 
    'parent_item_colon' => '',
    'menu_name' => __('Books')

  );

    $capabilities = array(
    'publish_posts' => 'publish_books',
    'edit_posts' => 'edit_books',
    'edit_others_posts' => 'edit_others_books',
    'delete_posts' => 'delete_books',
    'delete_others_posts' => 'delete_others_books',
    'read_private_posts' => 'read_private_books',
    'edit_post' => 'edit_book',
    'delete_post' => 'delete_book',
    'read_post' => 'read_book'
    );


  $args = array(
    'labels' => $labels,
    'public' => true,
    'publicly_queryable' => true,
    'show_ui' => true, 
    'show_in_menu' => true, 
    'query_var' => true,
    'rewrite' => true,
    'capability_type' => 'book',
    'capabilities' => $capabilities,
    'has_archive' => true, 
    'hierarchical' => false,
    'menu_position' => null,
    'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' )
  ); 

  register_post_type('book',$args);

}

add_action( 'init', 'codex_custom_init' );

Mi código es agregar una nueva publicación personalizada con capacidades personalizadas para el uso del complemento de miembros .

    
pregunta Gerald 26.07.2012 - 12:00

1 respuesta

8

Parece que un CPT con capacidad de tipo personalizado no se mostrará de forma predeterminada, incluso como superadministrador. Incluso la adición manual de los permisos para el rol de usuario deseado (licenciamiento-administrador en mi caso) no lo hizo posible. También tuve que agregar manualmente las capacidades para el administrador, luego todo encajó en su lugar.

He bloqueado este código en el enlace de activación de mi complemento y listo.

$roles = array( get_role('licensing-admin'), get_role('administrator') );

foreach($roles as $role) {
  if($role) {
    $role->add_cap('edit_license');
    $role->add_cap('read_license');
    $role->add_cap('delete_license');
    $role->add_cap('edit_licenses');
    $role->add_cap('edit_others_licenses');
    $role->add_cap('publish_licenses');
    $role->add_cap('read_private_licenses');
    $role->add_cap('delete_licenses');
    $role->add_cap('delete_private_licenses');
    $role->add_cap('delete_published_licenses');
    $role->add_cap('delete_others_licenses');
    $role->add_cap('edit_private_licenses');
    $role->add_cap('edit_published_licenses');
  }
}
    
respondido por el trans1t 26.06.2013 - 23:57

Lea otras preguntas en las etiquetas