有人遇到过这个问题吗?
我创建了一个自定义的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' ) ); ?>" />
我发现它真的很奇怪,我不知道为什么这行代码导致了这个问题,无论如何都要感谢大家!
答案 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 );
}