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