Настраиваемые значения полей для терминов таксономии


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

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

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

Author: Michal Mau, 2012-01-23

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 сообщений на однажды.

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

 0
Author: Michal Mau, 2012-01-23 11:32:04