Intereting Posts
Как разрешить запланированные сообщения, которые говорят «Пропущенный график», Как получить последнее сообщение с комментариями выше нового отправленного сообщения в WordPress? __NAMESPACE__ с register_activation_hook Как предотвратить появление новой строки в коротком коде? Список авторов сообщений минус самые последние Проблема с отладочной загрузкой: какая часть WP имеет фактическое изменение размера изображения? Редактор изображений не влияет на пользовательские размеры! Запуск PHP-результатов внутри WP Shortcode Получить только внуков, а не прямых детей страницы / текущей страницы? Как создать список ссылок для публикации с определенной категорией Добавить переменные php в пользовательскую форму отправки Как отключить кнопку публикации, если существует заголовок Переход на летнее время Как использовать цвет rgba из шаблона выбора шаблона темы Есть ли стиль по умолчанию style.css

Автоматическое добавление одного тега ко всем сообщениям в категории

В настоящее время я перепроектирую сайт с более чем 700 сообщениями, разделенный на 150 различных категорий. В некоторых категориях есть 2 должности, в других категориях – 70.

Теперь для каждой категории я хочу добавить тег ко всем сообщениям этой категории.

Кто-нибудь знает, есть ли способ автоматически добавить определенный тег ко всем сообщениям в категории?

Или единственный способ пройти все сообщения по отдельности и добавить тег к каждому из них один за другим?

Любая помощь очень ценится!

Solutions Collecting From Web of "Автоматическое добавление одного тега ко всем сообщениям в категории"

Хорошей отправной точкой является (как всегда) ссылка на функцию Codex.

Есть одна приятная небольшая функция, которая может быть использована для добавления тегов или категорий (или любой другой встроенной или пользовательской таксономии) в сообщение: wp_set_object_terms(); , Возможно, wp_set_post_terms(); более прост в использовании. Дальнейшее объяснение можно найти, когда вы переходите по ссылке.

Существует несколько способов сделать это: Массовое добавление с извлечением всех сообщений (например, из категории) с помощью get_posts(); (или другие запросы), затем перебирает все заданные пост-объекты и добавляет необходимые теги. Вы также можете попытаться добавить опции массового редактирования в свой пользовательский интерфейс администратора, но в вашем случае я бы сделал самый простой способ и просто написал небольшую небольшую функцию, которая добавляет ваши теги в одну категорию, а другую – для проверки того, была ли она добавлена. Затем перейдите к следующей категории. Написание какой-либо пользовательской функции, которая ловит все ваши добавленные теги (true / false), и проверка после этого будет немного. Сбрасывание этого в красивую таблицу при выключении не повредило бы:

 function wpse31531_add_tags() { global $_dump_tag_check; // the following array can contain any taxonomy. But you have to name it inside wp_set_post_terms. If you need to add tags, use 'post_tag' as 3rd argument. $tags = array( 'YOUR TAG NAME A HERE', 'YOUR TAG NAME B HERE' ); $args = array( 'post_type' => 'post', 'numberposts' => -1, 'post_status' => published ); $posts = get_posts( $args ); foreach ( $posts as $post ) { $check = wp_set_post_terms( intval( $post->ID ), $tags, 'post_tag', true ); // set last value to false if you want to replace existing tags. $_dump_tag_check[ $post->ID ]['tags'] = $check ? explode( ", ", $tags ) : 'failed'; } } add_action( 'init', 'wpse31531_add_tags' ); function wpse31531_dump_tag_check() { echo '<table><thead><tr><th>Post ID</th><th>Tags</th></tr></thead><tbody>'; foreach ( $GLOBALS['_dump_tag_check'] as $ID => $check ) echo "<tr><td>{$ID}</td><td>{$check['tags']}</td></tr>"; echo '</tbody></table>'; } add_action( 'wpse31531_dump_tag_check', 'shutdown' ); 

Когда вы читаете связанные страницы с кодами, вы увидите, что приведенный выше код не будет работать из коробки и больше похож на приблизительное руководство. Было бы очень признательно, если вы сможете отредактировать мой ответ с вашим рабочим кодом для последующих читателей. Благодарю.