我正在尝试创建一个 WordPress 短代码(它的 WordPress 部分不那么相关),它将在某些指定的文本中搜索链接并将其替换为我指定的链接。例如:
[scode]Click on <a href="www.X.com">this link</a>[scode]
[scode]Click on <a href="www.Y.com">this link</a>[scode]
...将更改为:
[scode]Click on <a href="www.Z.com">this link</a>[scode]
我正在尝试组合一个函数来搜索链接并将它们替换为我指定的链接。这是我现在拥有的:
// Adds [hide] shortcode for hiding content from non-registered users.
function hide_text( $atts,$content) {
if ( is_user_logged_in () ) {
return $content;
}
else {
$pattern = '(?<=href=("|\'))[^"\']+(?=("|\'))';
$newurl = "http://replacementurl.com";
$content = preg_replace($pattern,$newurl,$content);
echo $content;
}
}
add_shortcode( 'hide', 'hide_text' );
不过,这只会使网站崩溃。我不是 PHP 专家(更不用说正则表达式专家),但我的代码中至少有任何明显的违规行为吗?
更新:
我在该站点上运行了调试,并从日志中发现那里有一个额外}
的内容。现在网站没有崩溃,但回显的内容是空白的......上面更新的代码