我有一个自定义分类法。我可以访问分类法栏中带有术语foo的项目列表mysite.dev/?bar=foo
. 然后,我将永久链接选项从默认更改为“post name”。我无法再访问我的分类法/?bar=foo
也不在/bar/foo
, 当我(通过仪表板)进入Posts>bar>foo>View时,它会指引我去哪里。我有一个WP 404(不是Apache 404)。
我的htaccess仅包含
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
我尝试了MySQL查询
delete from wp_options where option_name="rewrite_rules"
然后重新保存永久链接设置。没有变化。
是的,我已通过命令行清除缓存:wp cache flush
分类在函数中注册。php:
// Hook to run the function on init
add_action(\'init\', \'register_taxonomy_topic\');
function register_taxonomy_bar() {
register_taxonomy(
\'bar\',
array(\'post\'),
array(
\'label\' => __(\'Bar\'),
\'show_ui\' => true,
\'hierarchical\' => false,
\'capabilities\' => array(
\'manage_terms\' => \'administrator\',
\'edit_terms\' => \'administrator\',
\'delete_terms\' => \'administrator\',
)
)
);
}
add_action(\'init\', \'register_taxonomy_bar\');
var_dump($wp_query[\'request\'])
给了我
SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name = \'barfoo\' AND wp_posts.post_type = \'post\' ORDER BY wp_posts.post_date DESC
所以我可以看到,它正在寻找一个名为“barfoo”的帖子,而不是在分类法“bar”中使用“foo”一词的帖子。
我曾尝试在Wordpress附带的214主题中以完全相同的方式注册相同的分类法,但我遇到了同样的问题。我激活的插件有:高级自定义字段、高级自定义字段:导航菜单字段、高级自定义字段Pro、增强型媒体库、Google XML站点地图、重定向、SVG支持、事件日历和木材。我试图禁用重定向,看看这是否是问题所在,但它不允许我禁用它。
我尝试将所有内容更新到最新版本,进展顺利,但没有解决此问题。
这是什么原因造成的?我该如何解决?