第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Wordpress:自動(dòng)更改 the_content 部分中的 URL

Wordpress:自動(dòng)更改 the_content 部分中的 URL

PHP
www說 2022-12-23 13:03:04
這里的解決方案并沒有解決我們的問題。我已經(jīng)有了一個(gè)解決方案來(lái)更改我們主題中字段表單中的所有鏈接。我為每個(gè)網(wǎng)絡(luò)使用不同的數(shù)組,例如$example_network_1 $example_network_2為每個(gè)附屬網(wǎng)絡(luò)使用 PHP foreach。現(xiàn)在我需要一個(gè)解決方案來(lái)將相同的數(shù)組用于 WordPress 帖子的內(nèi)容。此解決方案適用于一個(gè)網(wǎng)絡(luò),但它會(huì)導(dǎo)致 YouTube 視頻出現(xiàn) 404e 錯(cuò)誤。我們從 YouTube 視頻中輸入 URL,WordPress 會(huì)自動(dòng)生成一個(gè)嵌入視頻。使用以下代碼,我們會(huì)得到一個(gè)404 錯(cuò)誤 iframe或類似的東西。我們需要針對(duì)多個(gè)網(wǎng)絡(luò)的解決方案。我非常感謝您的每一次幫助!    $example_network_1 = array(            array('shop'=>'shop1.com','id'=>'11111'),               array('shop'=>'shop2.co.uk','id'=>'11112'),        );    $example_network_2 = array(            array('shop'=>'shop-x1.com','id'=>'11413'),             array('shop'=>'shop-x2.net','id'=>'11212'),        );    add_filter( 'the_content', 'wpso_change_urls' ) ;    function wpso_found_urls( $matches ) {     global $example_network_1,$example_network_2;           foreach( $example_network_1 as $rule ) {            if (strpos($matches[0], $rule['shop']) !== false) {                $raw_url = trim( $matches[0], '"' ) ;                return '"https://www.network-x.com/click/'. $rule['id'].'lorem_lorem='.rawurlencode($raw_url ) . '"';                }  /*      foreach( $example_network_2 as $rule ) {            if (strpos($matches[0], $rule['shop']) !== false) {                $raw_url = trim( $matches[0], '"' ) ;                return '"https://www.network-y.com/click/'. $rule['id'].'lorem='.rawurlencode($raw_url ) . '"';                  }  */        }    }    function wpso_change_urls( $content ) {        global $example_network_1,example_network_2;               return preg_replace_callback( '/"+(http|https)(\:\/\/\S*'. $example_network_1 ['shop'] .'\S*")/', 'wpso_found_urls', $content ) ;    //     return preg_replace_callback( '/"+(http|https)(\:\/\/\S*'. $example_network_2 ['shop'] .'\S*")/', 'wpso_found_urls', $content ) ;        }
查看完整描述

3 回答

?
藍(lán)山帝景

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊

autoembed掛在the_content優(yōu)先級(jí)為 8 的wp-includes/class-wp-embed.php:39


嘗試降低the_content過濾器的優(yōu)先級(jí),以便 URL 替換發(fā)生在嵌入之前,如下所示:


add_filter( 'the_content', function ( $content ) {

    /*

     * Here, we define the replacements for each site in the network.

     * '1' = main blog

     * '2' = site 2 in the network, and so on

     *

     * To add more sites, just add the key number '3', etc

     */

    $network_replacements = [

        '1' => [

            [ 'shop' => 'shop1.com', 'id' => '11111' ],

            [ 'shop' => 'shop2.co.uk', 'id' => '11112' ],

        ],

        '2' => [

            [ 'shop' => 'shop-x1.com', 'id' => '11413' ],

            [ 'shop' => 'shop-x2.net', 'id' => '11212' ],

        ]

    ];


    // Early bail: Current blog ID does not have replacements defined

    if ( ! array_key_exists( get_current_blog_id(), $network_replacements ) ) {

        return $content;

    }


    $replacements = $network_replacements[ get_current_blog_id() ];


    return preg_replace_callback( '/"+(http|https)(\:\/\/\S*' . $replacements['shop'] . '\S*")/', function( $matches ) use ( $replacements ) {

        foreach ( $replacements as $rule ) {

            if ( strpos( $matches[0], $rule['shop'] ) !== false ) {

                $raw_url = trim( $matches[0], '"' );


                return '"https://www.network-x.com/click/' . $rule['id'] . 'lorem_lorem=' . rawurlencode( $raw_url ) . '"';

            }

        }

    }, $content );

}, 1, 1 );

這不是復(fù)制和粘貼解決方案,但應(yīng)該可以幫助您。您可能需要調(diào)整您的“preg_replace_callback”代碼,但您說它正在運(yùn)行,所以我就這樣離開了。


查看完整回答
反對(duì) 回復(fù) 2022-12-23
?
紅顏莎娜

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊

如果阻止 wp 自動(dòng)嵌入有效,則只需將此行添加到您的主題中functions.php

remove_filter( 'the_content', array( $GLOBALS['wp_embed'], 'autoembed' ), 8 );


查看完整回答
反對(duì) 回復(fù) 2022-12-23
?
12345678_0001

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊

我沒有測(cè)試就寫了解決方案。如果沒有您的網(wǎng)站,您的代碼很難測(cè)試,但我認(rèn)為問題出在正則表達(dá)式上?;卣{(diào)很難調(diào)試。我的版本如下。


第一步,改變你的結(jié)構(gòu)。我懷疑域是唯一的。一維數(shù)組更有用。


$domains =  array(

            'shop1.com'=>'11111',   

            'shop2.co.uk'=>'11112',

            'shop-x1.com'=>'11413', 

            'shop-x2.net'=>'11212',

        );

下一個(gè):


$dangerouschars  = array(

  '.'=>'\.',


);

function wpso_change_urls( $content ) {

   global $domains,$dangerouschars;

   foreach($domains as $domain=>$id){

      $escapedDomain = str_replace(array_keys($dangerouschars),array_values($dangerouschars), $domain);


     if (preg_match_all('/=\s*"(\s*https?:\/\/(www\.)?'.$escapedDomain.'[^"]+)\s*"\s+/mi', $content, $matches)){

        // $matches[0] - ="https://example.com"

        // $matches[1] - https://example.com

        for($i = 0; $i<count($matches[0]); $i++){

                $matchedUrl = $matches[1][$i];

                $url = rawurlencode($matchedUrl);

                //is very important to replace with ="..."

                $content = str_replace($matches[0][$i], "=\"https://www.network-x.com/click/{$id}lorem_lorem={$url}\" ", $content);

        }

     }

   }

   return $content;

}


查看完整回答
反對(duì) 回復(fù) 2022-12-23
  • 3 回答
  • 0 關(guān)注
  • 111 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)