我已经设置了这样的搜索查询:
<?php
$s = get_search_query();
$args = array(
'post_type' => array('post'),
'posts_per_page' => '10',
'order' => 'DESC',
'orderby' => 'date',
's' => $s,
'paged' => $paged
);
$query_search = new WP_Query($args);
if ($query_search->have_posts())
{
while ($query_search->have_posts())
{
$query_search->the_post();
}
}
wp_reset_postdata();
?>
它非常有用,除非我正在搜索标题中包含标点符号的帖子。例如,如果标题是“Mark's Book”,则使用“mark's”和“marks”都不会返回任何结果。
如果我只是搜索“标记”,它会出现,但我想要上述任意一个关键字来检索帖子。
是否有一些简单的东西让我与标点符号兼容?
答案 0 :(得分:1)
默认get_search_query()传递esc_attr()上的数据,以确保放置在html属性中是安全的。如果你想关闭esc_attr()然后尝试这个代码,
$s = get_search_query( false );
可能会帮助你
答案 1 :(得分:0)
你可以这样试试:
$s = get_query_var('s');
$s = addslashes($s); //<-- even if you remove this the query will work
$args = array(
'post_type' => array('post'),
'posts_per_page' => '10',
'order' => 'DESC',
'orderby' => 'date',
's' => $s,
'paged' => $paged
);
$query_search = new WP_Query($args);
print_r($query_search->posts);
请注意:我假设查询字符串由s
访问。
代码经过测试并起作用
希望这有帮助!