Настраиваемые значения полей для терминов таксономии
У меня есть настраиваемое поле "автор" с именами авторов. Я хочу добавить некоторые новые функции на сайт, поэтому решил, что пользовательские таксономии будут лучшим решением. Итак, что мне нужно сделать, это получить значение настраиваемого поля и передать его в пользовательскую таксономию под названием исполнитель. Конечно, я могу сделать это вручную, но это более 1000 сообщений, так что это был бы ад.
Я предполагаю, что решение будет связано с функцией wp_set_object_terms();, но я ничего не пробовал работал.
Спасибо за любой ответ.
1 answers
Сейчас нет времени проверять это, но что-то вроде этого должно сработать:
// 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 сообщений на однажды.
Удачи и дайте мне знать, если вам понадобится дополнительная помощь в чем-либо из вышеперечисленного.