web-dev-qa-db-fra.com

Comment enregistrer le lien youtube post change change?

Dans functions.php, je l’utilise pour modifier la largeur de l’URL à partir de YouTube:

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' );
    }
}
?>

Mais quand save post est, l'URL http://www.youtube.com/watch?v=KTRPVo0d90w ne change pas en http://www.youtube.com/watch?v=KTRPVo0d90w&w=550 Comment résoudre ce problème?

1
Hai Truong IT

Je pense que vous souhaitez modifier la largeur vidéo par défaut. Vous pouvez modifier la largeur et la hauteur de la vidéo intégrée par défaut à l'aide du filtre 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