了解自定义帖子类型上的固定链接

时间:2012-10-19 作者:sacobserver

我讨厌在这里尝试重新设计轮子,但建议的帖子似乎都无法回答我的问题。我正在为30名30岁以下的获奖者建立一个系统,基本上是作为一个图像组合来设置的。我正在创建的帖子类型将被称为“获奖者”,整体菜单将被称为“30岁以下”。它们都显示在公文包页面上http://domain.com/30under30/ 但由于某些原因,这些帖子被创建为http://domain.com/honoree/%honoree-name%/

How do I change the my taxonomy follow menu name, as opposed to post type name? 函数中代码的标签部分。php如下

   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\' ),  
  ));  
任何帮助都将不胜感激。我正在尽我最大的努力理解代码,因为我明白了这一点。

2 个回复
最合适的回答,由SO网友:Adam 整理而成

除非另有规定,否则post\\u type slug将默认为post\\u类型的名称。所以,在它最基本的形式中,你可以设置一个自定义的基本段塞,如下所示,

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

目前,您已将其设置为true 只有

Don\'t forget to visit your permalinks page in the dashboard to flush your rewrite rules after you make your changes to get the new base rule to work!

再看看,

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

其中包含大量与自定义帖子类型相关的参数信息,包括初始重写规则。您可以使用重写规则做一些高级工作来满足许多场景,但对于最基本的需求,您可以依赖上面建议的代码片段。

我会提供更多的例子,但我是在电话上写的。。。

祝你好运

SO网友:Fabien Quatravaux

您不能使用所需的permalink格式创建自定义帖子类型页面。这种格式是为页面保留的(我指的是WP原生“页面”帖子类型)。

更新:这个答案是wrong, 有关详细信息,请参见备注。

实现所需结果的更好方法是创建一个名为30Under30的页面,该页面将具有http://domain.com/30under30/ permalink,然后创建custom page template 将显示自定义帖子类型列表。

在受奖人中。php文件中,输入以下代码(带有“Template Name”关键字的注释不是可选的):

<?php /* Template Name: Honoree */
    query_posts(array(\'post_type\' => \'honoree\'));

    // loop to display honoree posts
    while(have_posts()): the_post();

    endwhile;
?>
然后在30下30页的“页面模板”菜单中选择它。

结束

相关推荐

widgetlogic and permalinks

我试图使用widgetlogic在某些页面上有条件地显示菜单。每个菜单都使用如下标记is_page(array(\"Page Name\", \"Page Name 2\" ...)), 在我尝试更改permalinks之前,它一直工作得很好(因此所有菜单都会从各自的页面中消失)。我做错什么了吗?是否有解决方法?