MySQL插入的自定义分类词导至404,刷新重写无济于事

时间:2020-10-31 作者:Artem

我使用MySQL查询从桌面程序导入自定义术语。但所有的条款都把我带到了404页。我多次尝试刷新重写,但都没有用。只有当我在https://[我的网站]/wp admin/term上保存单个术语时,它才有帮助。php?分类法=门店类别;tag\\u ID=[内部ID]

我像这样创建自定义分类法

$labels = some labels
$args = array(
        \'labels\'                     => $labels,
        \'hierarchical\'               => true,
        \'public\'                     => true,
        \'show_ui\'                    => true,
        \'show_admin_column\'          => true,
        \'show_in_nav_menus\'          => true,
        \'show_tagcloud\'              => false,
        \'rewrite\'                    => true
    );
    register_taxonomy( \'store-category\', array( \'tdlrm_store_item\' ), $args );
然后我将我的术语插入我的数据库:

//repeated for each term
//insert term into wp_terms
$wpdb->insert($wpdb->prefix.\'terms\', array(
    \'name\' => $import_group[\'name\'],
    \'slug\' => $import_group[\'slug\']
));

//get the inserted term id
$term_id = $wpdb->insert_id;

//insert the term\'s id from my program
$wpdb->insert($wpdb->prefix.\'termmeta\',array(
   \'term_id\' => $term_id,
   \'meta_key\' => \'import_id\',
   \'meta_value\' => $import_group[\'id\']
));

//connect to taxonomy: store-category
$wpdb->insert($wpdb->prefix.\'term_taxonomy\',array(
   \'term_taxonomy_id\' => $term_id,
   \'term_id\' => $term_id,
   \'taxonomy\' => \'store-category\',
   \'parent\' => 0 //I have another function that inserts child items 
));
就是这样。我有一个学期wp_terms, 它与wp_term_taxonomy.

然后,每个产品都有其$import\\u组[\'id\',我只在中的meta\\u值中查找它wp_termmeta 并在中插入返回的term\\u id作为term\\u taxonomy\\u idwp_terms_relationships.

看起来我已经涵盖了所有内容,但当我转到[网站根目录]/商店类别/[术语段塞]/,它会将我带到404页。我做错了什么?是否有其他地方需要插入术语相关数据?wp\\U选项?

刷新重写规则没有帮助(已尝试多次)。此外,每个条款下显示的帖子数量为0(错误),可能这是相关的。此外,当我转到一个术语的wp管理页面并保存它时,这就解决了这个术语的404问题。但我不能手动操作,术语太多了。

我读过this, this 和类似的问题,但所有的答案似乎都是“尝试再次刷新重写”的变体,我做到了。

哦,我刚刚注意到了。个人帖子也是如此:404,直到我刷新他们的任期。


我也尝试从wp\\u选项中的rewrite\\u规则中删除数据,没有用。


我更改了“重写”=>;true至“重写”=>;错误,我现在没有404页,但仍然不知道如何在打开“重写”的情况下修复该问题。

所有不相关的插件都被停用

1 个回复
最合适的回答,由SO网友:Artem 整理而成

尤里卡!

我的分类名称是“商店类别”。当我使用“rewrite”=true或“rewrite”=数组(“slug”=>;“category”)时,它给了我一个404错误。当我将其更改为“重写”时=>;数组(\'slug\'=“gt;”group\')问题刚刚解决!

所以,问题最终变成了重写冲突。WordPress一直在类别中查找我的店铺类别,因此出现了404错误。

不知道“store category”是如何适应的(当rewrite刚刚设置为true时),但很明显,它导致了同样的问题。

所以SOLUTION: don\'t use slugs that match default WP slugs; try changing your slug to something else.