如何更新wordpress内容

时间:2013-09-27 10:25:39

标签: wordpress

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并更新页面内容但页面内容仍然相同所以请帮助我...

1 个答案:

答案 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;
}