Intereting Posts
Получите все пользовательские типы сообщений пользователя в WP Admin для плагина Эхо последнего ребенка Таксономия (а не родители)? Как проверить с помощью условных тегов на одной странице плагина? var_dump объекта WP_Query не пуст, а .have_posts () возвращает false WordPress 3+ медленное время загрузки на Ubuntu 10.10 Постоянная ссылка Не работает – URL не найден Пользовательский пул сообщений типа как slug страницы Обновление WordPress и установка плагина не работают Кто-нибудь поможет мне внедрить плагин подписки на теги. Добавление пользовательских данных профиля пользователя на основе категорий Как сделать недавно зарегистрированный сайт в многопользовательской сети «вживую» только тогда, когда пользователь готов Различные адреса для мобильных и настольных веб-страниц Удаление / блог / из мультисайтов вызывает бесконечное перенаправление Доступ к стороннему API – терминологии для различения этого и публикации API? синтаксис для remove_filter в родительской теме с классом

Добавить категорию только в том случае, если должность имеет категорию таксономии

Я пытаюсь добавить категорию к сообщению, в котором применяется специальная налоговая категория. Если у должности есть специальная налоговая категория, она также должна получить стандартную категорию.

Таким образом, приведенный ниже код добавит стандартную категорию, но добавляет его в каждую сохраненную запись, а не только те, у которых есть специальная категория налогов. Что я делаю не так?

add_action( 'save_post', 'set_new_category' ); function set_new_category( $post_id ) { //Define new category by ID $new_category = 27; //Define the custom taxonomy $em_taxonomy = 'event-category'; // Get the custom taxonomy category by slug $old_term = wp_get_post_terms( $post_id, 'building-reservations', $em_taxonomy ); // Check if post has custom taxonomy category applied if (!$old_term) //If not, don't do anything return; //Append with the new category wp_set_post_categories( $post_id, $new_category, $append = true ); } 

Solutions Collecting From Web of "Добавить категорию только в том случае, если должность имеет категорию таксономии"

wp_get_post_terms( $post_id, $taxonomy, $args ) ожидает, что третий параметр будет массивом аргументов.

Params

$ post_id (integer) (необязательно) Идентификатор сообщения по умолчанию: 0

$ таксономия (строка | массив) (необязательно) Таксономия для получения условий. По умолчанию post_tag. По умолчанию: 'post_tag'

$ args (array) (необязательно) Перезаписать значения по умолчанию Default: array

Я предполагаю, что $old_term устанавливается на wp_get_post_terms ответ WP_Error. Поэтому это всегда верно, когда вы проверяете это.

отклик

(array | WP_Error) Массив терминов таксономии или пустой массив, если не найдены термины. WP_Error, если $ taxonomy не существует. См. Is_wp_error () для получения дополнительной информации.

Вы можете проверить, что ответ хорош с чем-то вроде:

 if( is_array( $old_term ) && ! empty( $old_term ) ) { //do stuff } 

Если вы пытаетесь быть уверенным, что пост имеет таксономический термин building_reservations из таксономии event_category , возможно, что-то близкое к нему будет работать:

 $old_term = wp_get_post_terms( $post_id, $em_taxonomy ); if( is_array( $old_term ) && ! empty( $old_term ) ) { if ( in_array( 'building_reservations', $old_term ) { wp_set_post_categories( $post_id, $new_category, $append = true ); } }