Автоматически добавляйте категорию в пользовательский тип записи, используя category slug
Я использую эту отличную функцию для автоматического добавления категории в мой пользовательский тип публикации "Видео" при публикации, если категория еще не выбрана. Это отлично работает:
function add_video_category_automatically($post_ID) {
global $wpdb;
if(!has_term('','category',$post_ID)){
$cat = array(394);
wp_set_object_terms($post_ID, $cat, 'category');
}
}
add_action('publish_videos', 'add_video_category_automatically');
Но мне бы очень хотелось получить идентификатор категории через slug, чтобы мне не приходилось менять его вручную, когда я тестирую на локальном хосте по сравнению с живым сайтом (у которого может быть другой идентификатор для этой категории, поскольку локальный хост и живой сайт не синхронизированы).
Я пробовал количество вариантов, но все они приводят к тому, что новым публикациям присваивается категория "394", а не "Видео". Вот моя последняя попытка. Можете ли вы сказать мне, где я ошибаюсь?
function add_video_category_automatically($post_ID) {
global $wpdb;
if(!has_term('','category',$post_ID)){
$category = get_term_by( 'slug', 'videos', 'category' );
$cat = array($category->term_id);
wp_set_object_terms($post_ID, $cat, 'category');
}
}
add_action('publish_videos', 'add_video_category_automatically');
Спасибо вам!
1 answers
wp_set_object_terms
Лучше работает с термином slug вместо идентификатора термина, поэтому измените эту строку:
$cat = array($category->term_id);
Кому:
$cat = array($category->slug);