gpt4 book ai didi

php - WP - 检查帖子是否存在于 wp_insert_post 之前

转载 作者:行者123 更新时间:2023-12-02 14:57:00 25 4
gpt4 key购买 nike

如何在 wp_insert_post 之前检查帖子是否存在以避免重复?

如果我删除“if”语句 (post_exists()) 并继续重新插入产生多个重复的帖子,下面的代码将起作用。我用 post_exists() 编写了 if 语句只是为了开始实现检查逻辑,但是在我添加 if 语句的那一刻,有些东西中断了,下面的列表甚至都没有被打印出来。

 $body = wp_remote_retrieve_body( $request ); 
$data = json_decode(utf8ize($body), true);
$data_events = $data['events'];

if( ! empty( $data_events ) ) {
echo '<ul>';
foreach( $data_events as $event ) {
// the if statement below seems to break things ie. no li below printed.
if ( post_exists( $event['name'] ) == 0 ) {
echo 'exists';
} else {
echo 'doesnt exist';
}

echo '<li>';
echo $event['id'];
echo '<a href="' . esc_url( $event['uri'] ) . '">' . $event['name'] . '</a>';
echo '</li>';

$new_post = array(
'post_title' => $event['name'],
'post_content' => 'description',
'post_status' => 'publish',
'post_author' => '2',
'post_type' => 'post',
'post_category' => array(1),
'meta_input' => array(
'hq_id' => $event['id'],
)
);
//wp_insert_post($new_post); // commented out while testing the if statement.



}
echo '</ul>';
}

?>

编辑:请查看 $data_events 数组: https://pastebin.com/rC60iNyJ

最佳答案

post_exists() 函数在前端通常不可用。您可以使用 get_page_by_title 按标题查找帖子,而不是包含另一个文件。只需测试一个 null 值来检查它是否不存在。

替换

if ( post_exists( $event['name'] ) == 0 ) {

if ( get_page_by_title( $event['name'] ) == null ) {

关于php - WP - 检查帖子是否存在于 wp_insert_post 之前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52454262/

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