用URL字符串中的单词替换单词

时间:2013-05-03 作者:zen

我试图用URL字符串中的一个单词替换每个页面上的一个单词,例如“Denver”,因此?city=Atlanta 在URL中。所以我想使用PHP的GET从URL字符串中获取城市str_replace 替换它,但我必须将其附加到WordPress中的哪个动作/挂钩?

该词将出现在整个页面中,包括标题、徽标描述、内容、页脚等。。。因此,它不能仅仅取代内容。

2 个回复
SO网友:Pat J

检查Filter Reference -- 有如下过滤器the_content, the_title, wp_title, 等等。我不确定你会过滤什么来获得徽标描述和页脚——你可能需要深入研究主题的代码。

此外,确保对从中获得的任何东西进行消毒$_GET -- 永远不要信任用户生成的内容。看见Data Validation 了解更多信息。

SO网友:s_ha_dum

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;
}

结束

相关推荐

Too many actions/filters!

这里是wordpress的新成员。动作/过滤器的概念本身并不难理解。令我不知所措的是大量可用的操作和过滤器。当我阅读教程/指南时,他们会说“只需将此功能添加到wp\\U head操作或after\\U setup\\u主题”。如果没有这些教程,我究竟如何知道将该函数与该操作挂钩?作为一个初学者,我怎么会知道什么是合适的操作?有没有关于如何导航的建议?谢谢