我有一個包含域的數組,我想替換 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 關注
- 113 瀏覽
添加回答
舉報
0/150
提交
取消