调用wp_insert_term后,Wordpress类别不会刷新

时间:2011-12-09 13:56:39

标签: wordpress categories permalinks

我已经把头发拉了两个星期了,任何帮助都会非常感激。

我正在使用WP多站点3.2。

在网站前端,我有一个工具,它使用wp_insert_term为任何一个多站点博客添加一个新类别(我使用switch_to_blog()以防万一)。

然后我调用wp_set_object_terms()将帖子添加到创建的新类别中。

这两项工作都很好,新类别已创建,帖子也会切换到该类别。

问题:

新类别中帖子的永久链接会引发404错误。 该帖子未添加到新类别的帖子计数中。

这两个问题都可以通过以下方式解决:

A)转到wp-admin - >设置 - >永久链接并保存固定链接   B)转到wp-admin - >帖子 - >类别 - >并添加任何其他类别

上述两种解决方案对我不起作用,因为每次用户使用我们构建的工具时都无法手动执行此操作。

我们尝试了什么:

function flush_permalinks() {
global $wp_rewrite;
$wp_rewrite->set_permalink_structure('/%postname%/');
}
add_action('init', 'flush_permalinks');

//这不解决它

我们也尝试过:

function flush_permalinks() {
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
add_action('init', 'flush_permalinks');

//这不解决它

我们尝试过:

add_action( 'init', 'create_initial_taxonomies', 0 ); 

//这不能解决它。

提前感谢您提供任何帮助或指出我们正确的解决方案!

2 个答案:

答案 0 :(得分:1)

您是否尝试了template_redirect操作而不是init

我知道它在init之前运行。

function flush_permalinks() {
    global $wp_rewrite;
    $wp_rewrite->set_permalink_structure('/%postname%/');
}
add_action('template_redirect', 'flush_permalinks');

希望有所帮助,

尼克

答案 1 :(得分:0)