我为在Wordpress中搜索帖子创建了一个自定义查询。它看起来像这样:
SELECT * FROM wp_posts WHERE post_content LIKE '%$keywords%' OR post_title LIKE '%$keywords%' AND post_status = 'publish' AND (post_type = 'post' OR post_type = 'column')"
$keywords
是通过类似此$keywords = str_replace(" ", "+", $_GET['s']);
它还显示了帖子的所有草稿。我必须在此查询中更改哪些内容才能阻止其显示草稿?
我知道Wordpress中有一个标准搜索,但我不能使用这个,因为我在MSSQL上运行Wordpress。
提前致谢!
答案 0 :(得分:1)
编辑:我测试了一下MSSQL,似乎缺少括号是问题所在。我认为这个查询应该有用。
SELECT * FROM wp_posts WHERE (post_content LIKE '%$keywords%' OR post_title LIKE '%$keywords%') AND post_status = 'publish' AND (post_type = 'post' OR post_type = 'column')"
$ keyword是从POST获得的变量
$args = array('s' => $keyword, 'post_type' => array('post', 'column') );
$query = new WP_Query( $args );
您也可以传递其他参数,您可以查看here
另外,请避免使用query_posts
,您可以在第一段here