在WordPress中,我试图从CSV文件导入帖子。我想检查,如果标题的帖子已经存在。我试图使用数据库查询来完成这项工作,但我仍然能够从示例CSV文件中导入相同的三篇文章。
如果已经存在标题为的帖子,我将使用以下PHP代码片段进行检查:
$check_post_exists = function( $title ) use ( $wpdb, $postTypeArray ) {
$posts = $wpdb->get_col( "SELECT post_title FROM {$wpdb->posts} WHERE post_type = \'{$postTypeArray["custom-post-type"]}\' AND post_status = \'publish" );
return in_array( $title, $posts );
};
foreach ( $posts() as $post ) {
if ( $check_post_exists( $post["zoneid"] ) ) {
continue;
}
$post["id"] = wp_insert_post( array(
"post_title" => $post["zoneid"],
"post_content" => $post["bemaerkning"],
"post_type" => $postTypeArray["custom-post-type"],
"post_status" => "publish"
));
}
我做错了什么,或者我在这里错过了什么?
最合适的回答,由SO网友:Mohsin Ghouri 整理而成
你打字有误。您在代码末尾使用的是双引号,而不是单引号post_status = \'publish"
请使用post_status = \'publish\'
而不是post_status = \'publish"
然后在查询末尾使用双引号。
还可以通过在执行前打印查询来确保在查询中正确输入动态值。