No de forma nativa. Tendría que escribir algún código para que esto ocurra: hay una buena función pastebin que proporciona el código necesario para hacerlo.
Editar (19/12/2011):
Sí, aquí es cómo puedes hacer esto mediante programación. Agrega las siguientes dos funciones a tu archivo functions.php y deberías estar listo. Se ha comentado el código para explicar lo que está sucediendo, pero aquí hay un alto nivel de qué esperar:
Debes ...
- Crear una publicación
- En el contenido, incluye una URL de YouTube
El código será ...
- Analizar las URL fuera del contenido
- Agarrará la primera URL que encuentre y asumirá que es una URL de YouTube
- Coge la miniatura del servidor remoto y descárgala
- Configúralo como la miniatura de la publicación actual
Tenga en cuenta que si incluye varias URL en su publicación, deberá modificar el código para encontrar correctamente la URL de YouTube. Esto se puede hacer iterando a través de la colección $attachments
y rastreando el aspecto de la URL como una URL de YouTube.
function set_youtube_as_featured_image($post_id) {
// only want to do this if the post has no thumbnail
if(!has_post_thumbnail($post_id)) {
// find the youtube url
$post_array = get_post($post_id, ARRAY_A);
$content = $post_array['post_content'];
$youtube_id = get_youtube_id($content);
// build the thumbnail string
$youtube_thumb_url = 'http://img.youtube.com/vi/' . $youtube_id . '/0.jpg';
// next, download the URL of the youtube image
media_sideload_image($youtube_thumb_url, $post_id, 'Sample youtube image.');
// find the most recent attachment for the given post
$attachments = get_posts(
array(
'post_type' => 'attachment',
'numberposts' => 1,
'order' => 'ASC',
'post_parent' => $post_id
)
);
$attachment = $attachments[0];
// and set it as the post thumbnail
set_post_thumbnail( $post_id, $attachment->ID );
} // end if
} // set_youtube_as_featured_image
add_action('save_post', 'set_youtube_as_featured_image');
function get_youtube_id($content) {
// find the youtube-based URL in the post
$urls = array();
preg_match_all('#\bhttps?://[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/))#', $content, $urls);
$youtube_url = $urls[0][0];
// next, locate the youtube video id
$youtube_id = '';
if(strlen(trim($youtube_url)) > 0) {
parse_str( parse_url( $youtube_url, PHP_URL_QUERY ) );
$youtube_id = $v;
} // end if
return $youtube_id;
} // end get_youtube_id
Una cosa a tener en cuenta es que esto supone que su publicación no tiene una miniatura de publicación y no se activará una vez que se haya establecido una miniatura de publicación.
En segundo lugar, si elimina la miniatura de la publicación y luego adjunta una imagen a esta publicación mediante el cargador de medios, se usará la imagen más reciente.