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