Php WP-在WP\U插入\U post之前检查post是否存在
如何在wp_insert_post之前检查post是否存在以避免重复 如果我删除'if'语句(post_exists())并继续重新插入产生多个重复的帖子,下面的代码就会起作用。我用post_exists()编写了if语句,只是为了开始实现检查逻辑,但是当我添加if语句时,一些东西中断了,下面的列表甚至没有打印出来Php WP-在WP\U插入\U post之前检查post是否存在,php,wordpress,Php,Wordpress,如何在wp_insert_post之前检查post是否存在以避免重复 如果我删除'if'语句(post_exists())并继续重新插入产生多个重复的帖子,下面的代码就会起作用。我用post_exists()编写了if语句,只是为了开始实现检查逻辑,但是当我添加if语句时,一些东西中断了,下面的列表甚至没有打印出来 $body = wp_remote_retrieve_body( $request ); $data = json_decode(utf8ize($body), true);
$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>';
}
?>
$body=wp\u remote\u retrieve\u body($request);
$data=json_解码(utf8ize($body),true);
$data_events=$data['events'];
如果(!空($data_事件)){
回声“”;
foreach($data\u事件作为$event){
//下面的if语句似乎破坏了下面的内容。
如果(post_存在($event['name'])==0){
回声“存在”;
}否则{
回声“不存在”;
}
回音“- ”;
echo$event['id'];
回声';
回音“
”;
$new\u post=数组(
“post_title”=>$event['name'],
“发布内容”=>“说明”,
“发布状态”=>“发布”,
“post_author”=>“2”,
“post_type”=>“post”,
“post_类别”=>数组(1),
“元输入”=>数组(
'hq_id'=>$event['id'],
)
);
//wp_insert_post($new_post);//在测试if语句时注释掉。
}
回声“
”;
}
?>
编辑:请参阅$data\U事件数组:
试试这段代码。您需要包含此文件 因为
post_存在
功能将在管理页面上工作,而不是在前端
if ( ! is_admin() ) {
require_once( ABSPATH . 'wp-admin/includes/post.php' );
}
$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 'doesnt exist';
} else {
echo 'exists';
}
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>';
}
如果(!is_admin()){
require_once(ABSPATH.'wp admin/includes/post.php');
}
$body=wp\u remote\u retrieve\u body($request);
$data=json_解码(utf8ize($body),true);
$data_events=$data['events'];
如果(!空($data_事件)){
回声“”;
foreach($data\u事件作为$event){
//下面的if语句似乎破坏了下面的内容。
如果(post_存在($event['name'])==0){
回声“不存在”;
}否则{
回声“存在”;
}
回音“- ”;
echo$event['id'];
回声';
回音“
”;
$new\u post=数组(
“post_title”=>$event['name'],
“发布内容”=>“说明”,
“发布状态”=>“发布”,
“post_author”=>“2”,
“post_type”=>“post”,
“post_类别”=>数组(1),
“元输入”=>数组(
'hq_id'=>$event['id'],
)
);
//wp_insert_post($new_post);//在测试if语句时注释掉。
}
回声“
”;
}
试试这段代码。您需要包含此文件
因为post_存在
功能将在管理页面上工作,而不是在前端
if ( ! is_admin() ) {
require_once( ABSPATH . 'wp-admin/includes/post.php' );
}
$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 'doesnt exist';
} else {
echo 'exists';
}
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>';
}
如果(!is_admin()){
require_once(ABSPATH.'wp admin/includes/post.php');
}
$body=wp\u remote\u retrieve\u body($request);
$data=json_解码(utf8ize($body),true);
$data_events=$data['events'];
如果(!空($data_事件)){
回声“”;
foreach($data\u事件作为$event){
//下面的if语句似乎破坏了下面的内容。
如果(post_存在($event['name'])==0){
回声“不存在”;
}否则{
回声“存在”;
}
回音“- ”;
echo$event['id'];
回声';
回音“
”;
$new\u post=数组(
“post_title”=>$event['name'],
“发布内容”=>“说明”,
“发布状态”=>“发布”,
“post_author”=>“2”,
“post_type”=>“post”,
“post_类别”=>数组(1),
“元输入”=>数组(
'hq_id'=>$event['id'],
)
);
//wp_insert_post($new_post);//在测试if语句时注释掉。
}
回声“
”;
}
前端通常不提供post\u exists()
功能。您可以使用get\u page\u by\u title
按标题查找文章,而不是包含另一个文件。只需测试null
值,检查它是否不存在
替换
if ( post_exists( $event['name'] ) == 0 ) {
与
post\u exists()
功能通常在前端不可用。您可以使用get\u page\u by\u title
按标题查找文章,而不是包含另一个文件。只需测试null
值,检查它是否不存在
替换
if ( post_exists( $event['name'] ) == 0 ) {
与
post_存在必须参数1作为post title,因此请检查您是否正确获取它。?是,$event['name']是post title您可以发布$events数组吗?您是指$data_事件吗?请参见上面的编辑。您将此代码用于哪个钩子?尝试在echo“