如何将搜索查询代码修改为首字母大写(Title Case)格式
如何将搜索查询代码修改为首字母大写(Title Case)格式
嗨,这个需求很好解决,完全可以用你熟悉的ucwords()和strtolower()函数来处理,思路和你处理文章标题的逻辑几乎一致!
先看你原来的搜索查询代码:
<?php printf ( __('%s'), get_search_query() ); ?>
只需要把get_search_query()的返回值先统一转成全小写,再用ucwords()把每个单词的首字母大写,替换后的代码如下:
<?php printf( __('%s'), ucwords(strtolower(get_search_query())) ); ?>
简单解释下这段代码的作用:
strtolower(get_search_query()):先把用户输入的搜索关键词转成全小写,不管用户输入的是HELLO BLOG还是hElLo BlOg这种混合大小写的内容,都能统一成小写格式,避免首字母大写处理出现混乱。ucwords(...):把转成小写后的字符串每个单词的首字母大写,完美实现你要的Title Case格式。- 保留
__('%s')是为了维持WordPress的国际化支持,不会影响主题的翻译功能,这点和你原来的代码逻辑保持一致。
如果之后遇到特殊格式的搜索词(比如带连字符的mother-in-law,ucwords()只会大写第一个m),可以再自定义更精细的处理函数,但这个写法已经能覆盖绝大多数常规的搜索词Title Case需求啦,直接替换原代码就能生效~




