我有一个带有两个自定义帖子类型, 布道和成员的主题。我也将永久链接设置为postname。
最初, single.php会捕获一般的博客帖子以及成员, 但不是布道……它只会显示index.php文件。
经过研究, 我发现重置(保存)永久链接会重置它们。现在, 此类工作已捕获成员自定义帖子, 但仅显示了布道的index.php。
这就是我所说的…
// Custom Post types for Sermons
add_action('init', 'sermons');
function sermons() {
$args = array(
'labels' =>
array(
'name' =>
__( 'Sermons' ), 'singular_name' =>
__( 'Sermons' ), 'add_new' =>
__( 'Add Sermon' ), 'add_new_item' =>
__( 'Add Sermon' ), 'edit_item' =>
__( 'Edit Sermon' ), 'new_item' =>
__( 'Add Sermon' ), 'view_item' =>
__( 'View Sermon' ), 'search_items' =>
__( 'Search Sermons' ), 'not_found' =>
__( 'No Home Sermons found' ), 'not_found_in_trash' =>
__( 'No Sermons found in trash' )
), 'public' =>
true, 'show_ui' =>
true, 'capability_type' =>
'post', 'hierarchical' =>
false, // 'menu_icon' =>
WP_CONTENT_URL . '/themes/####/images/home-widget.png', 'rewrite' =>
true, 'exclude_from_search' =>
true, 'menu_position' =>
20, 'supports' =>
array('title', 'editor', 'thumbnail', 'page-attributes'), 'has_archive' =>
true
);
register_post_type('sermons', $args);
}// Custom Post types for Members
add_action('init', 'members');
function members() {
$args = array(
'labels' =>
array(
'name' =>
__( 'Members' ), 'singular_name' =>
__( 'Members' ), 'add_new' =>
__( 'Add Member' ), 'add_new_item' =>
__( 'Add Member' ), 'edit_item' =>
__( 'Edit Member' ), 'new_item' =>
__( 'Add Member' ), 'view_item' =>
__( 'View Member' ), 'search_items' =>
__( 'Search Members' ), 'not_found' =>
__( 'No Home Members found' ), 'not_found_in_trash' =>
__( 'No Members found in trash' )
), 'public' =>
true, 'show_ui' =>
true, 'capability_type' =>
'post', 'hierarchical' =>
false, // 'menu_icon' =>
WP_CONTENT_URL . '/themes/####/images/home-widget.png', 'rewrite' =>
true, 'exclude_from_search' =>
true, 'menu_position' =>
20, 'supports' =>
array('title', 'editor', 'thumbnail', 'page-attributes'), 'has_archive' =>
true
);
register_post_type('members', $args);
}
我已经尝试过single-sermons.php和single-members.php, 似乎都不起作用。是我注册每种自定义帖子类型的方式打破了这一点吗?
****编辑****从$ args中删除了’ rewrite’ => true, 并且一切都很好, 但是我宁愿拥有SEO友好的网址。
****编辑****修复了它……显然, 在args中删除了’ rewrite’ => true, 刷新了永久链接, 并再次添加了’ rewrite’ => true, 成功了。
#1创建自定义帖子类型后, 应执行flush_rewrite_rules(), 这将为你刷新永久链接结构。
只需在register_post_type()函数之后添加flush_rewrite_rules()。
更多信息:http://codex.wordpress.org/Function_Reference/flush_rewrite_rules
#2修复了它… 显然, 在args中删除’ rewrite’ => true, 刷新永久链接, 然后再次添加’ rewrite’ => true, 可以解决问题。
#3重新保存永久链接对我有用。 (设置-> 永久链接-> 保存)。
#4【WordPress单帖子类型模板不显示帖子】设置publicly_queryable => true解决了我的问题。
推荐阅读
- WordPress主题开发(调用未定义的函数WP_Query())
- WordPress-在子类别存档URL中显示父类别和子类别名称
- 带有$wp_rewrite的WordPress set_permalink_structure(‘/%postname%/’)
- WordPress搜索不起作用
- WordPress检索定制器设置
- WordPress Rest API路由在本地主机显示404错误
- WordPress qTranslate x-如何仅显示标志
- wordpress分页返回第2页的空白页(从头开始构建主题)
- 再也不敢精通Java了——get/set篇#yyds干货盘点#