关于wpdb查询的问题,wp_insert_post。该功能添加了重复的帖子

时间:2015-01-12 18:00:07

标签: wordpress wpdb

有人遇到过这个问题吗?

我创建了一个自定义的php脚本,它使用wp_insert_post()添加了一个新帖子,但是每次运行代码时它都会创建一个2个新帖子,其中只有一个,就像它运行两次一样,所以我使用wpdb->query测试了另一个函数,它也非常奇怪。请帮助我不知道是什么原因以及如何解决这个问题。

非常感谢。

以下是我测试问题的示例代码,它仍会创建2个相同的帖子

function testtest(){
      $ads_data = array(
            'post_title'    => "test",
            'post_content'  => "test",
            'post_status'   => 'publish',
            'post_type' => 'ads',
            //'post_author' => $user_id
        );

        // Insert the post into the database
        $ads_id = wp_insert_post( $ads_data );
}add_shortcode('testtest','testtest');

解决

我现在已经弄明白了,导致问题的原因是我的header.php是这行代码:

<link rel="icon" type="image/png" href="<?php echo esc_url( get_theme_mod( 'favicon' ) ); ?>" />

我发现它真的很奇怪,我不知道为什么这行代码导致了这个问题,无论如何都要感谢大家!

1 个答案:

答案 0 :(得分:0)

在插入新帖子之前检查是否已存在。所以 get_page_by_title('Some Post Title')== false 然后只插入新帖子。

add_action( 'init', 'my_func' );

function my_func()  {
$my_post = '';
if( get_page_by_title('test','OBJECT','ads') == NULL )
$my_post= array(
        'post_title'    => 'test',
        'post_name'     => 'test',
        'post_type'     => 'ads',
        'post_status'   => 'publish'
);
wp_insert_post( $my_post );
}