我正在尝试使用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;
}
如果有人能指出我正确的方向,或让我知道我哪里出错了,我会非常感激。
答案 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;
}