Категории Wordpress не обновляются после вызова wp_insert_term - PullRequest
1 голос
/ 09 декабря 2011

Я уже две недели тяну свои волосы на этом, любая помощь будет очень признательна.

Я использую WP мультисайт 3.2.

В интерфейсе сайта у меня есть инструмент, который использует wp_insert_term для добавления новой категории в любой из мультисайтовых блогов (в случае необходимости я использую switch_to_blog ()).

Затем я вызываю wp_set_object_terms (), чтобы добавить сообщение в новую созданную категорию.

Оба эти варианта работают нормально, новая категория создается, и сообщение переключается на эту категорию.

Проблема:

Постоянная ссылка на пост в новой категории выдает ошибку 404. Сообщение не добавляется в счетчик сообщений для новой категории.

Обе эти проблемы могут быть решены с помощью:

A) Зайдите в wp-admin -> settings -> permalinks и сохраните постоянные ссылки Б) Зайдите в 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 ]

1 голос
/ 09 декабря 2011

Вы пробовали действие template_redirect вместо init

Я знаю, что оно выполняется раньше, чем init.

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

Надеюсь, что поможет,

Ник

0 голосов
/ 11 мая 2012

Вам необходимо очистить кэш терминов.

http://codex.wordpress.org/Function_Reference/clean_term_cache

...