WordPress как на ладони
wordpress jino

Временно отключить категорию, метку или элемент таксономии

Бьюсь над таким, казалось бы, простым функционалом как отключение метки. Удалять не нужно ,т.к. заполнена страница метки (используется как производитель) и назначена определенному множеству записей. Но есть потребность на время ее отключить.

Мне удалось сделать скрыть шаблона архив данной метки, но довольно таки грубо..:

//Отключение терминов таксономии

add_action('template_redirect', 'meks_remove_wp_archives');

function meks_remove_wp_archives(){

  if( is_tag('test') ) {
	global $wp_query;
	$wp_query->set_404();
  }
}

При этом вывод метки все равно останется в товаре.

Есть ли какой-то способ временно отключать связи между записями и таксономиями (я думаю подобный функционал был бы полезен)?

Временное отключение wp_delete_object_term_relationships() для определенной таксономии (категории, метки, пользовательской) возможно?

0
Гость 10 месяцев назад
  • 0

    Как мне кажется надо пересобрать массив из актуальных терминов таксономии используя фильтр http://wp-kama.ru/hook/list_terms_exclusions или http://wp-kama.ru/hook/pre_get_terms
    Не тестил... не уверен что нужный хук... но искал бы инфо в этом направлении

    Комментировать
  • 0
    Kama4697

    Запиши все текущии записи метки в метаполе метки (термина). И удали все записи из метки... Потом когда надо будет вернуть, помести все записи обратно в метку по ID записей из сохраненного метаполя...

    Для удаления поста из метки юзай: wp_remove_object_terms()

    Для помещения поста в метку юзай: wp_set_object_terms()

    Для метаполей термина юзай update_term_meta() и get_term_meta()

    Вот тебе и временное удаление. При этом не придется вставлять разные костыли и ловить баги, что где-то что-то вылезло... Все будет в рамках логики WP.

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Регистрация. Вход.