web-dev-qa-db-ja.com

変更後のURLのYouTubeリンクを保存するには?

Functions.php私はYouTubeから幅のURLを変更するためにこれを使用して:

add_action('save_post', 'set_url_youtube');
function set_url_youtube() {
    $post = get_post($post_id); 
    $content = $post->post_content;
    preg_match_all('#(http://www.youtube.com)?/(v/([-|~_0-9A-Za-z]+)|watch\?v\=([-|~_0-9A-Za-z]+)&?.*?)#i', $content, $urls, PREG_SET_ORDER);
    if(is_array($urls)) {
       foreach ($urls as $url)
       $videos_url[] = $url[0];
    }

    if (is_array($videos_url)) {
        $videos_url = array_unique($videos_url);
        rsort($videos_url);
    }   

    if($videos_url) {
        foreach ($videos_url as $video_url) {
            $content = str_replace($video_url, $video_url.'&w=550', $content);
        }
        remove_action( 'save_post', 'set_url_youtube' );
        wp_update_post( array('ID' => $post_id, 'post_content' => $content) );
        add_action( 'save_post', 'set_url_youtube' );
    }
}
?>

しかし、投稿を保存すると、url http://www.youtube.com/watch?v=KTRPVo0d90whttp://www.youtube.com/watch?v=KTRPVo0d90w&w=550に変わりません。

1
Hai Truong IT

デフォルトのビデオ幅を変更したいと思います。デフォルトの埋め込みビデオの幅と高さは embed_defaults フィルタで変更できます。

add_filter('embed_defaults', 'ravs_embed_defaults');

function ravs_embed_defaults($embed_size) {
    if (is_single()) { // Conditionally set max height and width
        $embed_size['width'] = 640;
        $embed_size['height'] = 600;
    } else {           // Default values
        $embed_size['width'] = 460;
        $embed_size['height'] = 600;
    }
    return $embed_size; // Return new size
}
1
Ravinder Kumar