为什么自定义POST类型的固定链接从未命中index.php

时间:2012-07-29 作者:gravy

所以,我有一个完全自定义的主题,它有许多自定义的帖子类型。

我还有一个自定义分类法,可以在前端通过URL访问,例如:

www.mysite.local/custom-tax/custom-term
它运行一个查询,提供与税务“custom tax”中的术语“custom term”匹配的帖子结果。还分页等。

当涉及到自定义帖子类型页面时,例如,我有一个“提交”的CPT,permalink slug设置为“你的评论”,后端建议permalink将:

www.mysite.local/your-reviews/my-new-awesome-post/
这是404的。

我已经检查了WP模板层次结构,所有内容都返回到索引。php,根据用户访问的站点部分等,路由到需要使用的各种自定义模板。因此,如果我更改索引中的第一行。php到a

die
wp_die

我希望无论我访问哪个页面,我都会在die语句中得到消息,即使是404\'ing自定义帖子类型页面。

值得注意的是,无论我是否访问“归档”页面,我都会得到404分:

www.mysite.local/your-reviews/
或者单个页面(其中一些页面是“分层的”,并生成永久链接,例如(非分层页面也是404)。

www.mysite.local/your-reviews/my-parent/my-new-awesome-post/

Updated

因此,生成此特定CPT(以及其他一些CPT)的代码是:

define( \'LL_POSTTYPE_ONELINER\', \'ll_submissions\' );

$args = array(
    \'label\' => __(\'Submissions\'),
    \'labels\' => $labels,
    \'public\' => true,
    \'can_export\' => true,
    \'show_ui\' => true,
    \'_builtin\' => false,
    \'_edit_link\' => \'post.php?post=%d\', // ?
    \'capability_type\' => \'post\',
    \'menu_icon\' => get_bloginfo(\'template_url\').\'/images/thumb_up.png\',
    \'hierarchical\' => true,
    \'rewrite\' => array( "slug" => "submissions" ),
    \'supports\'=> array(\'title\', \'thumbnail\',\'page-attributes\' ) ,
    \'show_in_nav_menus\' => true,
    \'query_var\' => true,
    \'taxonomies\' => array()

);

register_post_type( LL_POSTTYPE_ONELINER, $args);
注意,虽然这一个标记为“Hierarchy”(分层)”=>“true”,但其他非分层的也以同样的方式标记为404。

接下来,根据我到目前为止得到的回复,从模板层次结构(single.php等)中删除我只有index.php 它永远不会击中。

2 个回复
SO网友:Rachel Baker

您的自定义帖子类型正在使用single。php和(很可能)归档。php模板。

A single CPT post looks for templates in this order:

单一{post\\u类型}。php-如果帖子类型是product,WordPress将查找单个产品。php单键。php索引。phpOther CPT pages look for templates in this order:

分类学{分类学}{鼻涕虫}。php分类法{分类法}。php-如果分类法是sometax,WordPress会寻找分类法-*sometax。php分类法。php存档。php索引。php

SO网友:Tom J Nowell

你冲洗过你的永久性皮肤吗?无论何时更改自定义帖子类型或分类,都必须刷新永久链接,否则将得到404

结束

相关推荐

Page Name and Permalinks

我正在使用WordPress 3.2.1,刚刚在我的网站上添加了一个名为“中心管理”的页面,这反过来又创建了一个永久链接:http://localhost:8888/mysite/centre-management/对于我刚刚创建的页面。之后,我把这个页面弄得一团糟,想重新开始。因此,当我现在创建另一个与上述名称相同的新页面时,即“中心管理”,WordPress现在为我创建一个永久链接:‎http://localhost:8888/mysite/centre-管理-2/这不是我想要的。我希望它显示为:ht