Intereting Posts
Иерархия категорий в URL-адресе После переписывания URL-адреса типа сообщения число запросов резко возросло Объект класса WP_Query не может быть преобразован в int int shortcode BackupBuddy, для резервного копирования, резервного копирования в целом и т. Д., Любой товар? Вызов неопределенной функции get_current_screen () на моем локальном хосте Как гарантировать, что is_search () возвращает false после query_posts как перемещать <img> из содержимого и размещать их в другом месте на шаблоне страницы? show 3 box в каждом карусельном бутстрапе с wp_query Ограничить доступ к странице в зависимости от уровня пользователя Редактирование пользовательской страницы администрирования Случайный текст меняется на странные значки как в admin, так и в интерфейсе Рекомендуемое изображение не отображается в wp-admin Активировать короткие коды для всех почтовых запросов? WordPress: допустимый размер памяти исчерпан – после перехода с Dev на Live Смешанный цикл ASC и DESC

Пользовательские значения полей для таксономии

У меня есть пользовательское поле «автор» с именами авторов. Я хочу добавить некоторые новые функции на сайт, поэтому я решил, что пользовательские таксономии будут лучшим решением. Поэтому мне нужно сделать, чтобы получить значение настраиваемого поля и передать его пользовательской таксономии, называемой художником. Конечно, я могу сделать это вручную, но это более 1000 сообщений, так что это будет ад.

Я думаю, что решение будет связано с wp_set_object_terms (); но ничего не пробовал.

Спасибо за любой ответ.

У меня нет времени проверять это сейчас, но что-то вроде этого должно работать:

// Change or add your own arguments as needed $args = array( 'post_type' => 'post', 'numberposts' => -1, 'offset' => 0 ); $my_posts = get_posts( $args ); if ( $my_posts ) { foreach ( $my_posts as $my_post ) { $meta = get_post_meta( $my_post->ID, '_name_of_your_custom_field', true ); if ( ! empty( $meta ) ) wp_set_post_terms( $my_post->ID, $meta, '_name_of_your_taxonomy'); } } 

Вы можете обернуть его в функцию, выбросить в свой файл functions.php или сделать его плагином. Просто убедитесь, что вы запускаете его только один раз, а не на каждой загрузке страницы …

Используйте аргументы get_posts (), чтобы изменить, какие сообщения будут затронуты. Например, вы можете использовать numberposts и offset для разделения запроса на несколько более мелких, если ваш сервер не хочет обрабатывать 1000+ сообщений одновременно.

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