检查自定义数据库查询中的现有标题不起作用

时间:2013-05-22 作者:Derfder

我想检查标题是否存在于wp_insert_post() 已触发。

然而,这种情况似乎并不像预期的那样起作用:

if( $wpdb->get_row("SELECT * FROM wp_posts WHERE post_title = \'" . trim($titles_arr[$i]) . "\' AND post_type=post", \'ARRAY_A\') ) {
  // title do exist
  // don\'t save

} else {

  // ...perform save code

}
而且无论它是否存在,它总是可以保存。

有趣的是,如果现有标题i my db是,例如:The best title in the world 和slugthe-best-title-in-the-world 举个例子trim($titles_arr[0]) (我正在通过foreach循环循环数组)数组,而不是调用该帖子中首先不应该保存的slugthe-best-title-in-the-world-2 如果我再次运行我的scirptthe-best-title-in-the-world-3

1 个回复
最合适的回答,由SO网友:Ravinder Kumar 整理而成

使用get_page_by_title 按标题获取帖子。

我在我的系统上检查它

$post_exist=get_page_by_title( \'Hello world!\', ARRAY_A, \'post\' );
    if( ! empty( $post_exist ) ) {
          echo \'title exist\';
    } else {
        echo \'title not exist\';
    }
正在成功运行。

你的情况可能是

$title=trim($titles_arr[$i]);
$post_exist=get_page_by_title( $title, ARRAY_A, \'post\' );
if( ! empty( $post_exist ) ) {
      echo \'title exist\';
} else {
    echo \'title not exist\';
}
另请参见:Get WordPress Post ID from Post title

结束

相关推荐

WP_QUERY元_按数组键查询

我有一个自定义的post类型,它的meta位于一个数组中。我需要做的是基于该元数组中键的值进行查询。$args = array( \'post_type\' => \'my-cpt\', \'posts_per_page\' => -1, \'orderby\' => \'meta_value\', // Sort by this value \'meta_key\