web-dev-qa-db-ja.com

カスタムフィールドを使用してカテゴリを割り当てますか?

投稿カテゴリを割り当てるためにカスタムフィールドを使用することは可能ですか?

例えば:

私のカスタム投稿タイプGenresへのTvseriesカスタムフィールドがあります。

それから私は入りました:アクション、ドラマ、コメディ

保存または公開すると、入力/カスタムフィールドに入力した3つのカテゴリが割り当てられます。

1
Archangel17

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' );
        }
    }
}

あなたはあなたのカテゴリーのslugIDをフィールドに入力するべきです。たとえば、War Moviesは機能しませんが、war-moviesは機能します。また、値の間に空白を入れないでください(または','' ,'に変更する必要があります)。

コードを投稿していないので、これは単なる例です。カスタムフィールド/投稿タイプに合わせて、genresなどの値を変更する必要があるかもしれません。

1
Jack Johansson