它在每个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 论点