我有一个包含域的数组,我想替换 WordPress 中的内部帖子内容。我的功能很简单,使用 preg_replace。<?phpadd_filter( 'the_content', 'filter_the_content' );function filter_the_content( $content ) { $domains = array('domain1.com/out/','domain2.com/out/'); if ( is_single() ) { $content = preg_replace("/^(http(s)?:\/\/)?((w){3}.)?(".implode('|', $domains)."?([a-zA-Z0-9_]{2,5}.)?(\/out)?\/.+/i", 'https://domain3.com/out', $content); } return $content;}?>应用过滤器后,我的内容消失了,我不知道如何让它工作,替换数组中的域。
1 回答
手掌心
TA贡献1942条经验 获得超3个赞
在您的正则表达式中,您有两倍的扩展名和/out/.
你可以用以下方法解决这个问题:
$content = 'blah https://domain1.com/out/ blah https://domain2.com/out/ blah https://domainXXX.com/out/ blah';
$domains = array('domain1.com/out/','domain2.com/out/');
$content = preg_replace("~(?:https?://www)?(?:".implode('|', $domains).")~i", 'https://domain3.com/out', $content);
echo $content;
输出:
blah https://https://domain3.com/out blah https://https://domain3.com/out blah https://domainXXX.com/out/ blah
- 1 回答
- 0 关注
- 65 浏览
添加回答
举报
0/150
提交
取消