它在每个Like查询前后添加附加值
那个{d146fc7cb41ff444163abadd50ac5da7ec5439fd51386c3cfe2cea107126703b}
是一个placeholder escape string 对于文字%
准备好的报表中使用的(百分比)符号(参见wpdb::prepare()
) 而转义字符串是由wpdb::placeholder_escape()
.
所以实际上{d146fc7cb41ff444163abadd50ac5da7ec5439fd51386c3cfe2cea107126703b}
是%
签名,但以转义形式,并将其更改回%
当WordPress将查询发送到MySQL时。
因此,不要担心这个值;这是完全正确的,而且是有充分理由的。
是否有搜索确切术语的方法
是的,有:使用exact
参数并将其设置为1
或true
. 例如。
在浏览器中,导航到https://example.com/?s=acetic&exact=1
.
或在模板/PHP中运行new WP_Query( \'s=acetic&exact=1\' )
.
。。。上述两种情况都会导致WordPress搜索帖子,比如帖子标题acetic
而不是acetic acid
. 一、 e.TheLIKE
子句不会使用%
登录为inpost_title LIKE \'acetic\'
而不是post_title LIKE \'%acetic%\'
.
此外,如果要在搜索关键字中保留空格,请使用双引号将其括起来,即。"<keyword>"
. 例如,如果你有两篇标题为My foo bar baz post
和My foo BAZ before bar post
分别,然后搜索"foo bar"
将只匹配第一篇包含foo
后跟空格和bar
, i、 e。foo bar
. 但如果你搜索foo bar
(没有引号),那么这将匹配这两篇文章,因为标题包含foo
还有bar
.
此外,上述"<keyword>"
格式等效于设置sentence
参数到1
或true
如中所示s=my foo&sentence=1
. 但使用上述格式,您可以进一步限制搜索结果,例如:。my foo&sentence=1
将匹配上述两个帖子,但是"my foo", before
仅与第二篇文章匹配,因为它包含before
除此之外my foo
.
然而,应该注意的是sentence
以及"<keyword>"
格式将使用%
登录LIKE
子句,所以如果没有%
签名,使用exact
论点