web-dev-qa-db-ja.com

wp_embed_register_handlerが機能していません

私は他のビデオホストにこの機能を使用しましたが、何らかの理由で現在は機能していません。これはビデオの直接コードと埋め込みコードです。

https://vidoza.net/r2jeim68kuq6.html

<IFRAME SRC="https://vidoza.net/embed-r2jeim68kuq6.html" FRAMEBORDER=0 MARGINWIDTH=0 MARGINHEIGHT=0 SCROLLING=NO WIDTH=640 HEIGHT=360 allowfullscreen></IFRAME>

これが私の登録機能です。

add_action( 'init', function()
{        wp_embed_register_handler(
        'vidoza', 
        '#https://vidoza\.net/([a-zA-Z0-9_-]+)$#i',   
        'vidoza_embed_handler' 
    );
} );


function vidoza_embed_handler( $matches, $attr, $url, $rawattr )
{
    $embed = sprintf( 
        '<IFRAME SRC="https://vidoza.net/embed-%1$s" FRAMEBORDER=0 MARGINWIDTH=0 MARGINHEIGHT=0 SCROLLING=NO WIDTH=640 HEIGHT=360 allowfullscreen></IFRAME>',
        esc_attr( $matches[1] )
    );
    return apply_filters( 'vidoza_embed_handler', $embed, $matches, $attr, $url, $rawattr );
}

私はそれを機能させることができません。

1
Archi25

あなたはr2jeim68kuq6.htmlの部分にマッチさせようとしています、しかしあなたはここであなたの正規表現パターンの中でドットを許していません:

'#https://vidoza\.net/([a-zA-Z0-9_-]+)$#i'

あなたは試すことができます。 (大文字と小文字を区別しないi検索のため、A-Zも削除します):

'#https://vidoza\.net/([a-z0-9_-]+)\.html$#i'

もし.htmlが標準的な拡張子で、iframeのソースも次のように調整したとします。

src="https://vidoza.net/embed-%1$s.html" 

それが役に立てば幸い!

2
birgire