我正在构建一个简单的WP插件,应该创建一个新的帖子,并为帖子保存一些元数据。我创建了一个功能函数,并将其连接到'init‘事件,以检查它是否有效。
add_action( 'init', 'my_func' );
function my_func() {
$my_post = array(
'post_title' => 'Some Post Title',
'post_name' => 'some-post-title',
'post_type' => 'custom-post-type',
'post_status' => 'publish'
);
$inserted_post_id = wp_insert_post($my_post);
if($inserted_post_id != 0) {
add_post_meta($inserted_post_id, 'some-key', 'some-value');
add_post_meta($inserted_post_id, 'some-other-key', 'some-other-value');
echo 'SUCCESS';
} else {
echo 'ERROR';
}
}现在,每当我重新加载管理页面时,我都会得到“成功”消息的回响,我还得到了4-6个名为“”的新帖子,以及postmeta表中的4-6*2个新条目。“成功”消息只回响一次,这意味着函数只运行一次,但我还是多次获得插入数据库的数据。我做错了什么?
发布于 2014-08-11 04:22:14
如果已经存在或不存在,请在插入新帖子之前进行检查。因此,get_page_by_title(“一些帖子标题”) == false,然后只插入新的帖子。
add_action( 'init', 'my_func' );
function my_func() {
$my_post = '';
if( get_page_by_title('Some Post Title','OBJECT','custom-post-type') == NULL )
$my_post= array(
'post_title' => 'Some Post Title',
'post_name' => 'some-post-title',
'post_type' => 'custom-post-type',
'post_status' => 'publish'
);
wp_insert_post( $my_post );
}https://stackoverflow.com/questions/25234254
复制相似问题