我有这个非常短暂的功能,我根本不懂,评论很可笑:
// This function makes the meta query work
function my_posts_where( $where ) {
$where = str_replace("meta_key = 'bonuses_%", "meta_key LIKE 'bonuses_%", $where);
return $where;
}
add_filter('posts_where', 'my_posts_where');
有问题的元查询是一个标准的WP查询,array_push($args['meta_query'],$bonusesArgs);
将$ bonusesArgs(元查询)推入其中。
如果没有my_posts_where函数,元查询就无法运行。我不明白为什么(显然开发人员也没有......!)
我希望有人可以解释my_posts_where功能 - 它在做什么,我已经看了一遍,无法理解它。
答案 0 :(得分:1)
嗯..它似乎正在做的是重建不同的元查询,但是使用LIKE而不是direct =
Like执行搜索字符串中的值,而不是直接相等。
因此,如果原始元查询仅使用<section class="bg-img well-top">
<img src="https://placebear.com/1200/300" alt="place bear" />
<div class="container">
<div class="row">
<div class="col-xs-12 col-sm-offset-2 col-sm-8">
<form class="search-form" action="http://static.livedemo00.template-help.com/wt_57621/search.php" method="GET" accept-charset="utf-8">
<label class="search-form_label">
<input class="search-form_input" type="text" name="s" autocomplete="off" placeholder="Search Scripts"/>
<span class="search-form_liveout"></span>
</label>
<button class="search-form_submit fa-search" type="submit"></button>
</form>
</div>
</div>
</div>
</section>
值,则此函数似乎完全是多余的。
但是,如果没有看到整个代码,那么确切地说出这可能产生的影响真的很难。但无论如何,有更好的方法与查询对象进行交互,而不是在其数据上运行一些奇怪的str_replace。