我在wordpress数据库中有自定义表“catalog”:
id|name|description|slug|price
我有模板文件“catalog”和页面“catalog”,其中显示了目录表中的所有项目。但是,如何将此列表中的单个项目显示为页面?
领域开发/目录/(此部件工作)域。dev/catalog/my single item页面(我不知道如何使其工作)
如何使用“我的单个项目页面”作为动态变量?
slug=“我的单个项目页面”;
我的函数中有这个片段。php文件
function add_query_vars_catalog_item_filter( $vars ) {
$vars[] = "catalog_item";
return $vars;
}
add_filter( \'query_vars\', \'add_query_vars_catalog_item_filter\' );
function catalog_rewrite() {
add_rewrite_rule(\'^catalog/([\\w-]+)/?\', \'index.php?pagename=catalog&catalog_item=$matches[1]\', \'top\');
}
add_action(\'init\', \'catalog_rewrite\');
但当我进入域名时。开发/目录/我的一些项目我得到404页
我使用这个自定义表是因为我生成表单CSV。将来,重新生成数据会更简单
最合适的回答,由SO网友:Sally CJ 整理而成
Your code worked absolutely fine for me, so I suspected you forgot to flush the rewrite rules.
每次添加更改WordPress重写规则的代码后,例如:。
add_rewrite_rule()
或在启用URL重写的情况下注册/取消注册CPT或自定义分类法的代码,您应该始终刷新重写规则,这意味着WordPress将清空/重置保存的重写规则(在数据库和
.htaccess
并重新生成(并重新保存)它们,其中将包括您新添加或更新的重写规则。
如何刷新重写规则:只需访问设置→永久链接设置页面。无需点击“保存更改”按钮
还有一种编程方式(请参见flush_rewrite_rules()
), 但一般来说,上述技巧是首选方法,除非您编写插件,例如,在插件激活和停用期间调用函数。