基本上我在functions.php中声明了一个自定义的帖子类型:
register_post_type("butik", [
"labels" => [
"name" => "Butik",
"singular_name" => "Butik"
],
"show_ui" => true,
"supports" => [
"title",
"editor",
"thumbnail"
]
]);
我在自定义列表页面上正确呈现了所有帖子,但是我希望它们在单击时显示在single.php模板上。我已经谷歌搜索了几年,到处读书,我应该为我的案例创建一个单butik.php,并能够在那里列出每个适当的帖子,但它不起作用。它只是将我引导到index.php模板,所以我尝试将它们列在那里,没有成功,尝试在那里打印帖子,没有成功......
我做错了什么?!...
自定义帖子的永久链接的一个示例是: http://localhost:8080/caroli/butik/caroli-blommor/
任何提示或解决方案?
答案 0 :(得分:2)
尝试添加' public' =>是的,并且: '重写' =>数组(' slug' =>' butik')键
register_post_type("butik", [
"labels" => [
"name" => "Butik",
"singular_name" => "Butik"
],
"show_ui" => true,
'public' => true,
'rewrite' => [
'slug' => 'butik'
],
"supports" => [
"title",
"editor",
"thumbnail"
]
]);
之后转到设置 - >永久链接设置,只需点击"更新按钮"。
答案 1 :(得分:0)
此问题通常是由于需要更新重写规则。 WordPress并不总是自动完成这项工作。请尝试以下步骤(按此顺序):
转到设置>永久链接并将结构更改为" Custom Structure"。 (它应默认为" http://yourdomain.com/%postname%/)。确保单击"保存更改"。检查并查看您的自定义帖子类型现在是否使用single-butik.php模板。如果不是,那么:
打开你的functions.php并添加以下代码:
function theme_prefix_rewrite_flush() {
flush_rewrite_rules();
}
add_action( 'after_switch_theme', 'theme_prefix_rewrite_flush' );
保存您的functions.php,并在WordPress管理员中将您的主题切换为2014(或任何其他默认主题)并激活它。现在将主题切换回原来的样子。这将强制刷新重写规则。
您的自定义帖子类型应该使用正确的single-butik.php模板。
答案 2 :(得分:0)
如果您问我自定义帖子类型的最佳解决方案是acf plugin他将为您完成所有这些工作,只需先阅读文档然后您就可以随意做模板。
我希望这会对你有所帮助:)。