自定义帖子类型档案类别页面结果为404

时间:2011-12-18 作者:Luke

我创建了自定义帖子类型:

register_post_type(\'campaign\',
   array(
      \'labels\' => array(
         \'name\' => __("Campaigns"),
         \'singular_name\' => __("Campaign"),
      ),
      \'rewrite\' => array(
         \'slug\' => \'campaigns\',
         \'with_front\' => FALSE,
      ),
      \'public\' => TRUE,
      \'has_archive\' => TRUE,
      \'supports\' => array(\'title\', \'editor\', \'thumbnail\'),
      \'publicly_queryable\' => TRUE,
   )
);
以及类别的自定义分类法:

register_taxonomy( \'campaign_category\', \'campaign\', 
   array( 
      \'hierarchical\' => TRUE, 
      \'label\' => \'Categories\', 
      \'query_var\' => TRUE, 
      \'rewrite\' => array(
          \'slug\' => \'category\',
          \'with_front\' => FALSE,
          \'hierarchical\' => FALSE,
      ),
   ) 
);
因为帖子类型是用has_achive 设置为TRUE 我可以浏览到/campaigns URL和我的archive-campaign.php 模板已触发。到目前为止还不错。

但是,当我尝试访问类别时,/campaigns/category/fashion, 我得到一个404.

具有正确slug的类别存在,每次我有机会使用任何重写规则时,我都会重新保存永久链接。

如有任何建议,将不胜感激。

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

有两件事:

您不应该将“category”用作slug,因为它已经内置在WP中,因此是保留的(http://codex.wordpress.org/Function_Reference/register_taxonomy#Reserved_Terms)

假设它不是保留的,那么基本URL结构前面就不会包含帖子类型。

编辑

我刚刚意识到你没有设置归档段塞本身。而不是has_archive = true, 将其设置为has_archive = \'campaigns\' (来匹配你的另一个鼻涕虫)。这将使您的永久链接匹配

SO网友:sergio

您必须将分类法slug升级为“%campaign\\u category%”,然后在函数中替换它。

在这里,我解释了我是如何做到这一点的(我将其应用于类别本身,因为我还想从url中删除类别slug,但我会理解)

Removed slug from CPT, now How/where do I hook the filter to the taxonomy term archive pages link?

如果你的不同案例也破坏了其他链接,请告诉我。这种解决方案对其他人有效,但我认为它在我的网站上出现了中断,因为其他一些原因,例如多站点安装。

结束

相关推荐

WordPress中的自定义wp_Dropdown_Categories项目

我的搜索表单中有wp\\u dropdown\\u categories函数。php文件。现在,它允许用户选择要搜索的帖子类别。有没有办法让下拉列表包含自定义分类法和自定义帖子类型?例如,如果我有一个用于图库的自定义帖子类型,以及一个用于位置的自定义分类法。。。如何显示wp下拉列表,让用户选择搜索“照片”或“位置”?

自定义帖子类型档案类别页面结果为404 - 小码农CODE - 行之有效找到问题解决它

自定义帖子类型档案类别页面结果为404

时间:2011-12-18 作者:Luke

我创建了自定义帖子类型:

register_post_type(\'campaign\',
   array(
      \'labels\' => array(
         \'name\' => __("Campaigns"),
         \'singular_name\' => __("Campaign"),
      ),
      \'rewrite\' => array(
         \'slug\' => \'campaigns\',
         \'with_front\' => FALSE,
      ),
      \'public\' => TRUE,
      \'has_archive\' => TRUE,
      \'supports\' => array(\'title\', \'editor\', \'thumbnail\'),
      \'publicly_queryable\' => TRUE,
   )
);
以及类别的自定义分类法:

register_taxonomy( \'campaign_category\', \'campaign\', 
   array( 
      \'hierarchical\' => TRUE, 
      \'label\' => \'Categories\', 
      \'query_var\' => TRUE, 
      \'rewrite\' => array(
          \'slug\' => \'category\',
          \'with_front\' => FALSE,
          \'hierarchical\' => FALSE,
      ),
   ) 
);
因为帖子类型是用has_achive 设置为TRUE 我可以浏览到/campaigns URL和我的archive-campaign.php 模板已触发。到目前为止还不错。

但是,当我尝试访问类别时,/campaigns/category/fashion, 我得到一个404.

具有正确slug的类别存在,每次我有机会使用任何重写规则时,我都会重新保存永久链接。

如有任何建议,将不胜感激。

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

有两件事:

您不应该将“category”用作slug,因为它已经内置在WP中,因此是保留的(http://codex.wordpress.org/Function_Reference/register_taxonomy#Reserved_Terms)

假设它不是保留的,那么基本URL结构前面就不会包含帖子类型。

编辑

我刚刚意识到你没有设置归档段塞本身。而不是has_archive = true, 将其设置为has_archive = \'campaigns\' (来匹配你的另一个鼻涕虫)。这将使您的永久链接匹配

SO网友:sergio

您必须将分类法slug升级为“%campaign\\u category%”,然后在函数中替换它。

在这里,我解释了我是如何做到这一点的(我将其应用于类别本身,因为我还想从url中删除类别slug,但我会理解)

Removed slug from CPT, now How/where do I hook the filter to the taxonomy term archive pages link?

如果你的不同案例也破坏了其他链接,请告诉我。这种解决方案对其他人有效,但我认为它在我的网站上出现了中断,因为其他一些原因,例如多站点安装。

相关推荐

Dropdown menu for categories

当我使用下面的代码时<?php wp_nav_menu( array(\'menu\' => \'categories\' )); ?> 我可以创建一个新的菜单来列出我创建的wordpress中的所有类别。我用它在页面中间列出所有类别。我现在的问题是:有没有一种简单的方法可以为存在的每个子类别创建下拉菜单?那么,当我点击一个特定的类别时,它的子类别会显示出来吗?