Назначить категорию с помощью настраиваемого поля?


Можно ли использовать настраиваемое поле для назначения категории должности?

Например:

У меня есть Genres настраиваемое поле для моего пользовательского типа записи Tvseries.

Затем я вошел: Боевик, Драма, Комедия

Как только я сохраню или опубликую его, ему будут присвоены те 3 категории, которые я ввел в поле ввода/настройки.

Author: Jack Johansson, 2017-06-12

1 answers

Вы должны подключиться к save_post и установить категории с помощью wp_set_object_terms():

// Add an action to run on post save
add_action( 'save_post', 'set_genre_on_save' );
function set_genre_on_save( $post_id ){
    // Check the post type
    if (is_single('tvseries')) {
        // Get the custom field data
        $custom_field_data = get_post_custom( $post_id );
        // Check if there is any genres entered in the metabox
        if (isset($custom_box_data['genre'])) {
            // Save the genre data (separated by comma) into an array
            $genre_array = explode( ',', $custom_box_data['genre'] );
            //Set the array values to lower case
            foreach ($genre_array as $genre){
                $genre = strtolower($genre);
            }
            // Set the categories for these genres
            wp_set_object_terms( $post_id, $genre_array, 'category' );
        }
    }
}

Вы должны ввести slug или ID ваших категорий в поле. например, War Movies не будет работать, но war-movies будет работать. Также между значениями не должно быть пробелов (или вам нужно изменить ',' на ' ,').

Обратите внимание, что это всего лишь пример, так как вы не опубликовали никакого кода. Возможно, вам потребуется изменить некоторые значения, такие как genres, чтобы они соответствовали вашим пользовательским полям/записям типы.

 1
Author: Jack Johansson, 2017-06-12 09:58:22