Intereting Posts
Изменения в моей дочерней теме из customizer не появляются в style.css? Как получить динамическое содержимое боковой панели за сообщение Макет шаблона большого размера Родительские и дочерние таксономии в обычном столбце Сортировка по пользовательскому значению поля Как вы создаете реляционные типы сообщений в WordPress? Отображать все прикрепленные изображения каждого сообщения типа персонализированного сообщения и ссылки на исходный пост Разбиение страницы разбито, именовав конфликт между CPT и страницей Рекомендуемое изображение не работает при загрузке из поддомена Белый пустой экран и проблема, чтобы получить эскиз в Как исключить определенные файлы из редактора плагинов? Организуйте загрузки по годам, месяцам и дням add_theme_support ('custom-header') не добавляет параметр для настройки WordPress Multisite Installation Missing Tables Проблема с контекстом в multisite – получение основных данных сайта в каждом блоге (get_pages ())

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

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

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

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

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

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

Хорошей отправной точкой является (как всегда) ссылка на функцию 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' ); 

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