Назначить категорию с помощью настраиваемого поля?
Можно ли использовать настраиваемое поле для назначения категории должности?
Например:
У меня есть Genres
настраиваемое поле для моего пользовательского типа записи Tvseries
.
Затем я вошел: Боевик, Драма, Комедия
Как только я сохраню или опубликую его, ему будут присвоены те 3 категории, которые я ввел в поле ввода/настройки.
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
, чтобы они соответствовали вашим пользовательским полям/записям типы.