我试图用URL字符串中的一个单词替换每个页面上的一个单词,例如“Denver”,因此?city=Atlanta
在URL中。所以我想使用PHP的GET从URL字符串中获取城市str_replace
替换它,但我必须将其附加到WordPress中的哪个动作/挂钩?
该词将出现在整个页面中,包括标题、徽标描述、内容、页脚等。。。因此,它不能仅仅取代内容。
我试图用URL字符串中的一个单词替换每个页面上的一个单词,例如“Denver”,因此?city=Atlanta
在URL中。所以我想使用PHP的GET从URL字符串中获取城市str_replace
替换它,但我必须将其附加到WordPress中的哪个动作/挂钩?
该词将出现在整个页面中,包括标题、徽标描述、内容、页脚等。。。因此,它不能仅仅取代内容。
检查Filter Reference -- 有如下过滤器the_content
, the_title
, wp_title
, 等等。我不确定你会过滤什么来获得徽标描述和页脚——你可能需要深入研究主题的代码。
此外,确保对从中获得的任何东西进行消毒$_GET
-- 永远不要信任用户生成的内容。看见Data Validation 了解更多信息。
str_replace
将弄乱页面上任何不吉利的标记,因为它将替换标记或URL内的匹配文本。
你想要的是我给另一个问题的答案的修改版本about highlighting search terms. 变化将是highlight_search_term
作用您只需将其更改为使用$_GET
数据而不是搜索数据。
function highlight_search_term($text){
if(!empty($_GET[\'city\']){
$keys = strip_tags($_GET[\'city\']); // nominal validation
$pattern = \'/<[^>].*?>/i\';
preg_match_all($pattern,$text,$matches);
$placeholders = array();
foreach ($matches[0] as $v) {
$placeholders[] = highlight_search_term_placeholders();
}
$text = preg_replace_callback($pattern,\'highlight_search_term_cb\',$text);
$pattern2 = \'/(\' . $keys .\')/iu\';
$text = preg_replace($pattern2, \' <span class="search-term">\\1</span> \', $text);
$text = preg_replace($placeholders,$matches[0],$text);
}
return $text;
}
这里是wordpress的新成员。动作/过滤器的概念本身并不难理解。令我不知所措的是大量可用的操作和过滤器。当我阅读教程/指南时,他们会说“只需将此功能添加到wp\\U head操作或after\\U setup\\u主题”。如果没有这些教程,我究竟如何知道将该函数与该操作挂钩?作为一个初学者,我怎么会知道什么是合适的操作?有没有关于如何导航的建议?谢谢