gpt4 book ai didi

WordPress wp_insert_post 和 wp_update_post

转载 作者:行者123 更新时间:2023-12-03 07:25:26 26 4
gpt4 key购买 nike

我想从我的 WordPress 网站的前端创建一个帖子。

当人们添加具有相同 post_title 的帖子时,我希望更新该帖子,而不是创建新帖子。

我有以下内容:

if (!get_page_by_title($post_title, 'OBJECT', 'post') ){
$my_post = array(
'post_title' => $post_title,
'post_content' => $post_content,
'post_status' => 'publish',
'post_author' => $post_author,
'post_category' => $post_categories
);

wp_insert_post( $my_post );

}

else {

$page = get_page_by_title($post_title);
$page_id = $page->ID;

$my_post = array(

'ID' => $page_id,
'post_title' => $post_title,
'post_content' => $post_content,
'post_status' => 'publish',
'post_author' => $post_author,
'post_category' => $post_categories
);

wp_update_post( $my_post );

}

以上工作正常,直到帖子标题相同。它仍然会在数据库中重复,甚至不会考虑“else”语句。

以上看起来没问题,还是我做错了什么?

最佳答案

如果对数组使用检查会怎样

请注意,即使帖子已被删除,它也会获取数据库中的第一个帖子/页面项目。

$check_title=get_page_by_title($post_title, 'OBJECT', 'post');

//also var_dump($check_title) for testing only

if (empty($check_title) ){
$my_post = array(
'post_title' => $post_title,
'post_content' => $post_content,
'post_status' => 'publish',
'post_author' => $post_author,
'post_category' => $post_categories
);

wp_insert_post( $my_post );

}

else {


$my_post = array(

'ID' => $check_title->ID,
'post_title' => $post_title,
'post_content' => $post_content,
'post_status' => 'publish',
'post_author' => $post_author,
'post_category' => $post_categories
);

wp_update_post( $my_post );

}

关于WordPress wp_insert_post 和 wp_update_post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17617858/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com