Установите условия публикации при публикации публикации


Я пытаюсь установить условия публикации для публикации, когда она будет опубликована

Я использую следующий код, но он не работает

add_action('pending_to_publish', 'oj_publish_post');
function oj_publish_post($post_id) {
  $taxonomy = 'category';
  $term_id = array(8);
  $term_id = array_map('intval', $term_id);    
  wp_set_post_terms( $post_id ,$term_id, $taxonomy,true);
}

Но, когда я передаю идентификатор сообщения вручную , т.е. вместо использования post_id. Я использую 773, это работает

   add_action('pending_to_publish', 'oj_publish_post');
    function oj_publish_post($post_id) {
      $taxonomy = 'category';
      $term_id = array(8);
      $term_id = array_map('intval', $term_id);    
      wp_set_post_terms( 773 ,$term_id, $taxonomy,true);
    }

Что я делаю не так, пожалуйста, помогите

Author: user7459842, 2021-07-14

1 answers

Аргументом действия pending_to_publish, $post_id в вашем случае является не идентификатор, а массив (обратный вызов для публикации).

Я думаю, что было бы лучше использовать действие publish_post, таким образом, $post_id на самом деле будет идентификатором поста.

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

Отредактированный ответ

Или в вашем случае вы можете передать идентификатор записи как следующий

add_action('pending_to_publish', 'oj_publish_post');
function oj_publish_post($post) {
  $taxonomy = 'category';
  $term_id = array(8);
  $term_id = array_map('intval', $term_id);    
  wp_set_post_terms( $post->ID ,$term_id, $taxonomy,true);
}
  1
Author: Buttered_Toast, 2021-07-14 11:04:42