В 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
.
На этом все.