带有自定义分类的WordPress菜单

时间:2011-08-26 作者:daysrunaway

我正在寻找一种可扩展的最佳实践方法来执行以下操作:

我需要一个菜单,以有一个链接到主页,一个标准的网页,和一个自定义后类型档案数量可变。每个归档文件还必须有一个标准子页面和一个类别页面,其中包含具有特定自定义分类的所有帖子。因此菜单如下所示:

 Home
 About
 Artist 1 Archive
      About Artist 1
      Custom Taxonomy
 Artist 2 Archive
      About Artist 2
      Custom Taxonomy
其他艺术家也是如此。

目前,我正在使用WordPress的内置归档来定制帖子类型,因此它们不会显示在我的菜单中——但我并不反对只使用自定义url(例如,/artist-1/)。我遇到的困难是如何为自定义分类法创建归档。有没有一种方法可以设置页面模板并以某种方式使用get_query_var() 获取帖子类型?或者有没有更自然的方法来做到这一点?

最后,我还要重定向URL;自定义分类法的类别将为yes, 但我需要将其更改为portfolio.

非常感谢你的帮助。

1 个回复
SO网友:Roman

也许下次再为每个主题创建一个问题;)

1) Menu Item for Custom Post Type archive

我这里没有自动解决方案。但在我看来,应该可以在菜单管理页面中创建一个类似的小部件,以显示带有存档的所有PostType,并生成一个指向它的链接,您可以拖动该链接&;下拉至所需菜单。

2) Post Template for Custom Taxonomy

如果显示自定义分类法的术语,则默认archive.php 使用模板。您可以使用一些条件语句来显示基于分类法或帖子类型的内容,例如。if(is_tax(\'YOUR_TAX\') || is_post_type_archive(\'YOUR_POSTTYPE\')). 也可以使用archive-{tax}.php 对于静态模板文件,但尚未使用post类型存档对其进行测试。

3) Permalink for Custom Taxonomy

在注册期间,您可以设置rewrite参数。所以基本上可以生成如下内容:

http://yourblog.tld/parent/cpt/<post>    
http://yourblog.tld/parent/cpt/taxonomy/<post>
要做到这一点,您必须首先使用特殊的rewrite 参数然后向注册新的分类法对象register_taxonomy_for_object_type 用于自定义帖子类型before 您可以注册自定义分类法。正如Jan Fabry在SE的回答中所述,这对于生成的重写规则的正确顺序是必要的。

Custom Post Type

$args = array(
    // your arguments
    \'rewrite\' => array(\'slug\' => \'parent/cpt\', \'with_front\' => false)
);

register_post_type(\'YOUR_POSTTYPE\', $args);
register_taxonomy_for_object_type(\'YOUR_TAXONOMY\', \'YOUR_POSTTYPE\');

Custom Taxonomy

$args = array(
   // your arguments
   \'rewrite\' => array(\'slug\' => \'parent/cpt/taxonomy\', \'with_front\' => false)
)

register_taxonomy(\'YOUR_TAXONOMY\', array(), $args);

结束

相关推荐

Menu API not switching menus?

我正在使用菜单API,我想切换到其他菜单,但出于某种原因,它保留了第一个菜单这是我的密码在函数中。php add_action( \'init\', \'register_my_menus\',10 ); function register_my_menus() { register_nav_menu(\'main-navigation\', \'Main Navigation\'); } 下面是我的主题文件(header.ph