web-dev-qa-db-fra.com

Comprendre les liens permanents sur les types de publication personnalisés

Je déteste essayer de réinventer la roue ici, mais aucun des postes proposés ne semble fonctionner pour répondre à ma question. Je construis un système pour nos 30 lauréats de moins de 30 ans, qui est essentiellement configuré comme un portefeuille d'images. Les types de messages que je crée seront appelés "honorés" et le menu général intitulé "30 moins de 30 ans". La page de portfolio sur laquelle ils sont tous affichés sera http://domain.com/30under30/ . Mais, pour une raison quelconque, les articles sont créés sous la forme http://domain.com/honoree/%honoree-name%/

Comment puis-je changer le nom du menu suivi de ma taxonomie, par opposition au nom du type de poste? La section des étiquettes de mon code à partir de functions.php est ci-dessous

   function project_custom_init()  
{  
  $labels = array(  
    'name' => _x('Honorees', 'post type general name'),  
    'singular_name' => _x('Honoree', 'post type singular name'),  
    'add_new' => _x('Add New', 'honoree'),  
    'add_new_item' => __('Add New Honoree'),  
    'edit_item' => __('Edit Honoree'),  
    'new_item' => __('New Honoree'),  
    'view_item' => __('View Honoree'),  
    'search_items' => __('Search Honorees'),  
    'not_found' =>  __('No honorees found'),  
    'not_found_in_trash' => __('No honorees found in Trash'),  
    'parent_item_colon' => '',  
    'menu_name' => '30 Under 30'  
  );  
 $args = array(  
    'labels' => $labels,  
    'public' => true,  
    'publicly_queryable' => true,  
    'show_ui' => true,  
    'show_in_menu' => true,  
    'query_var' => true,  
    'rewrite' => true,  
    'capability_type' => 'post',  
    'has_archive' => true,  
    'hierarchical' => false,  
    'menu_position' => null,  
    'supports' => array('title','editor','author','thumbnail','excerpt','comments')  
  );  
  // The following is the main step where we register the post.  
  register_post_type('honoree',$args);  
  // Initialize New Taxonomy Labels  
  $labels = array(  
    'name' => _x( 'Tags', 'taxonomy general name' ),  
    'singular_name' => _x( 'Tag', 'taxonomy singular name' ),  
    'search_items' =>  __( 'Search Types' ),  
    'all_items' => __( 'All Tags' ),  
    'parent_item' => __( 'Parent Tag' ),  
    'parent_item_colon' => __( 'Parent Tag:' ),  
    'edit_item' => __( 'Edit Tags' ),  
    'update_item' => __( 'Update Tag' ),  
    'add_new_item' => __( 'Add New Tag' ),  
    'new_item_name' => __( 'New Tag Name' ),  
  );  
    // Custom taxonomy for Honoree Tags  
    register_taxonomy('tagportfolio',array('honoree'), array(  
    'hierarchical' => true,  
    'labels' => $labels,  
    'show_ui' => true,  
    'query_var' => true,  
    'rewrite' => array( 'slug' => 'tag-portfolio' ),  
  ));  

Toute aide serait appréciée. Je fais de mon mieux pour comprendre le code pendant que je découvre cela.

3
sacobserver

Votre slug post_type sera par défaut le nom du post_type, sauf indication contraire. Ainsi, dans sa forme la plus élémentaire, vous pouvez définir un slug de base personnalisé comme suit,

'rewrite' => array( 'slug' => 'slug-name-here');

Actuellement, vous le définissez sur true uniquement.

N'oubliez pas de visiter votre page de liens permanents dans le tableau de bord pour vider vos règles de réécriture après avoir apporté vos modifications afin que la nouvelle règle de base fonctionne!

Regardez aussi,

http://codex.wordpress.org/Function_Reference/register_post_type

Qui contient de nombreuses informations sur les paramètres associés aux types de publication personnalisés, y compris la règle de réécriture initiale. Vous pouvez faire des choses avancées pour répondre à de nombreux scénarios avec des règles de réécriture, mais pour les exigences les plus élémentaires, vous pouvez vous fier à l'extrait suggéré ci-dessus.

Je donnerais plus d'exemples, mais j'écris à partir d'un téléphone ...

Bonne chance!

4
userabuser