嗨,我已经创建了一个名为shows的自定义帖子类型。
这是它的代码。
<?php
add_action(\'init\', \'show_register\');
function show_register() {
//arguments to create the post type.
$args = array(
\'label\' => __(\'shows\'),
\'singular_label\' => __(\'Show\'),
\'public\' => true,
\'show_ui\' => true,
\'capability_type\' => \'post\',
\'hierarchical\' => true,
\'has_archive\' => true,
\'supports\' => array(\'title\', \'editor\', \'thumbnail\', \'custom-fields\'),
\'rewrite\' => array(\'slug\' => \'shows\', \'with_front\'
=> false), );
//Register type and custom taxonomy for type.
register_post_type( \'shows\' , $args );
register_taxonomy("Show-type", array("shows"),
array("hierarchical" => true, "label" => "Show
Types", "singular_label" => "Show Type", "rewrite"
=> true, "slug" => \'show-type\'));
}
?>
我已经创建了2个文件,它们遵循wordpress层次结构并调用了它们
archive-shows.php
和
single-shows.php
. 这些应该自动链接到正确的页面,但由于某些原因,它们都默认返回索引。php。
正常的single.php
和archive.php
正常工作。
Fix尝试了Permalinks Flushedarchive = true
请提供任何建议。
最合适的回答,由SO网友:s_ha_dum 整理而成
注册这些东西后,你必须刷新永久链接。有很多方法可以自动完成,但最快捷的方法是浏览wp-admin->Settings->Permalinks
然后单击“保存更改”。如果这是你的网站,而你没有发布插件,那么这将很好地工作。如果这是一个插件(可能应该是),您可以运行flush_rewrite_rules();
在插件的激活挂钩上。抄本中的一个例子:
function myplugin_activate() {
// register taxonomies/post types here
flush_rewrite_rules();
}
register_activation_hook( __FILE__, \'myplugin_activate\' );
function myplugin_deactivate() {
flush_rewrite_rules();
}
register_deactivation_hook( __FILE__, \'myplugin_deactivate\' );
除此之外,我对您的代码没有任何问题(未经修改复制)。注册的CPT和
single-shows.php
和
archive-shows.php
冲洗permalinks后工作。