Как указать значение по-умолчанию для произвольной таксономии в WordPress?

В WordPress записи автоматически попадают в рубрику «Без рубрики», если пользователь не указывал другую. Сделаем то же самое для своей таксономии.


/*
 *  Добавляем код в functions.php
 */
function set_default_mytax_term( $post_id, $post ) {
  if ( 'publish' === $post->post_status && $post->post_type === 'post' ) {

    $terms = wp_get_post_terms( $post_id, 'mytax' );

    if ( empty( $terms ) ) {
      wp_set_object_terms( $post_id, 'default', 'mytax' );
    }

  }
}
add_action( 'save_post', 'set_default_mytax_term', 100, 2 );

Функция

set_default_mytax_term

срабатывает во время сохранения публикации.

Мы проверяем тип записи

post_type

и статус

post_status

, чтобы код работал только во время публикации записи.

Далее получаем значение вашей произвольной таксономии (в нашем случае это

mytax

) через функцию

wp_get_post_terms()

. Если возвращается пустой массив — значит нам нужно указать значение по-умолчанию с помощью функции

wp_set_object_terms()

, и это будет

default

.

На этом все.


admin

Share
Published by
admin

Recent Posts

Настройка Mercurial по HTTPS

Иногда mercurial, при скачивании и комитах ругается на https. Особенно на самоподписанные сертификаты. Чтобы заработал…

3 недели ago

Компиляция libvirt в Ubuntu

Компиляция libvirt Подробнее

3 недели ago

Ошибка libvirt permission denied: решение

Если возникает ошибка libvirt destroy lxc permission denied , при попытке остановить контейнер: _x000D_# virsh…

3 недели ago

Настройка редиректа в NGINX

Файлы с примерами редиректа для nginx Подробнее

3 недели ago

Включение gzip в NGINX

Как включить gzip сжатие в Nginx ? Подробнее

3 недели ago

Удаление postinst-скрипта в Linux

Иногда возникает ситуация, когда криво настроенные пакеты не устанавливаются в системе. У меня это произошло…

3 недели ago