Публикация копии определенного поста всегда после поста определенной категории

#php #arrays #wordpress #copy

Вопрос:

Я пытаюсь сделать так, чтобы это произошло: когда я публикую пост с определенной категорией, WordPress автоматически опубликует копию определенного идентификатора поста и присвоит ему идентификатор категории 14.

Код копирует сообщение, но удваивается дважды и не дает категории 14. Кто-нибудь имеет представление о том, что я делаю не так?

 /* Makes copy of post and gives it the category ID 14 */

 function copyofpost($post_id){
    $title   = get_the_title($post_id);
    $oldpost = get_post($post_id);
    $post    = array(
      'post_title' => $title,
      'post_status' => 'publish',
      'post_type' => $oldpost->post_type,
      'post_author' => 1
    );

    $new_post_id = wp_insert_post($post);
    // Copy post metadata
    $data = get_post_custom($post_id);
    foreach ( $data as $key => $values) {
      foreach ($values as $value) {
        add_post_meta( $new_post_id, $key, $value );
        wp_set_post_categories( $new_post_id, array('14') );
      }
    }

    return $new_post_id;
  }

/* Checks if there is post in category "viikon-kuva" 
and runs a function to post copy of post number 1062 */

function kysely_viikonkuvan_jalkeen($query) {
    if ( $query->is_home() ) {
        
        if ( get_post_type( $post->ID ) == 'post' amp;amp; in_category( 
            'viikon-kuva') ) {
                $new_post_id = copyofpost('1062');
            }   
    }
    return $query;
    }
    add_filter('pre_get_posts', 'kysely_viikonkuvan_jalkeen');