0
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を新しいものに置き換え、ページのコンテンツを更新していますが、ページのコンテンツは同じなので、これを手伝ってください..

4

1 に答える 1

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;
}   
于 2013-09-27T10:35:10.867 に答える