使用带有wordpress的preg_replace()过滤the_content

时间:2015-12-03 16:51:59

标签: php regex wordpress

我正在尝试使用the_content过滤器和preg_replace()将php查询附加到从我的网站到赞助商网站的链接的末尾。我在regexr.com上测试了我的正则表达式并且它有效。我还使用print_r()来测试函数是否被调用但由于某种原因链接在实践中没有被更改。这是我遇到问题的代码

add_filter('the_content', 'linkAppend');

function linkAppend($content) {
  global $referalString;

  preg_replace('/\/\/(www|launch)?\.?(solarwinds\.com)\/[^"]*/g','$&?cmp='.$referalString, $content);
  return $content;
}   

如果有人能指出我正确的方向,或让我知道我哪里出错了,我会非常感激。

1 个答案:

答案 0 :(得分:1)

原来我遇到了多个问题,有人向我指出我没有将preg_replace( )的输出分配给$content然后我发现并解决了全局标志的问题关于正则表达式在php中无效,而我没有考虑/之后没有.com的链接。最终修复如下所示:

add_filter('the_content', 'linkAppend');

function linkAppend($content) {
  global $referalString;
  $content = preg_replace('/\/\/(www|launch)?\.?(solarwinds\.com)\/?[^"]*/m','$0?cmp='.$referalString, $content);
  return $content;
}