add_filter('the_content','filter_trendland_content');
//create a the function to get the content of the page by using the hook the_content
function filter_trendland_content($content) {
$getdata = $content;
if ( preg_match_all( '#(?:<a.+?href=["|\'](?P<link_url>.+?)["|\'].*?>\s*)?(?P<img_tag><img.+?src=["|\'](?P<img_url>.+?)["|\'].*?>){1}(?:\s*</a>)?#is', $getdata, $images ) ) {
foreach ( $images[img_url] as $key => $value) {
$subdomain = rand( 1, 3 );
$newurl="yaseen.media$subdomain.com";
$content = preg_replace('/\bmedia.trendland.com\b/', $newurl, $value);
print $content;
}
print $getdata;
}
//return $getdata;
}
我使用上面的方法用新的url替换url并更新页面内容但页面内容仍然相同所以请帮助我...
答案 0 :(得分:1)
查看您的函数,它不会返回值。
不是打印输出,而是将内容返回到过滤器。
此外,您正在迭代一个空对象 - $images[img_url]
。查看preg_match_all的文档。它返回一个多维匹配数组。
您的代码看起来过度设计,正则表达式中的单词边界可能会阻止匹配。如果media.trendland.com的所有实例都需要替换,以下内容可能会达到您的要求。
function filter_trendland_content($content) {
$subdomain = rand( 1, 3 );
$newurl='yaseen.media' . $subdomain . '.com';
$content = preg_replace('/media.trendland.com/', $newurl, $content);
return $content;
}