Назначить автоматически и вручную изменить категорию

При публикации автоматически присваивается категория должности. Но как я могу изменить эту категорию в админ?

function add_bookcategory_automatically($post_ID) { global $wpdb; if(!wp_is_post_revision($post_ID)) { $bookcat = array (4 ); wp_set_object_terms( $post_ID, $bookcat, 'category'); } } add_action('publish_post', 'add_bookcategory_automatically'); 

Например, теперь новое сообщение имеет категорию с id 4, но я не могу изменить или добавить категорию в admin. Каждый раз, когда я сохраняю сообщение, категория возвращается к 4 id. Как я могу изменить функцию?

Ну, каково ожидаемое поведение? Вы используете wp_set_object_terms и передаете только один термин.

Если вы хотите удостовериться, что указанному термину назначен пост, в то же время он может добавить столько других терминов, сколько пожелаете, попробуйте сделать это следующим образом:

 function add_bookcategory_automatically( $post_id ) { if ( ! wp_is_post_revision( $post_id ) ) { $bookcat = 4; wp_add_object_terms( $post_id, $bookcat, 'category'); } } add_action( 'publish_post', 'add_bookcategory_automatically' ); 

См. wp_add_object_terms .