WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

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

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

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

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

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
Гость
1.9 года назад
  • 0

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

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

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

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

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

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

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

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