Pas nativement. Il faudrait écrire du code pour y arriver - il y a une belle fonction pastebin qui fournit le code nécessaire pour le faire.
Modifier (19/12/2011):
Oui, voici comment procéder par programmation. Ajoutez les deux fonctions suivantes à votre fichier functions.php et vous devriez être prêt à partir. Le code a été commenté pour expliquer ce qui se passe, mais voici un niveau élevé à quoi s'attendre:
Vous devez...
- Créer une publication
- Dans le contenu, incluez une URL YouTube
Le code va ...
- Analyser l'URL du contenu
- Récupérera la première URL trouvée et supposera qu'il s'agit d'une URL YouTube
- Prenez la vignette du serveur distant et téléchargez-la
- Définissez-le comme miniature de l'article actuel
Notez que si vous incluez plusieurs URL dans votre message, vous devrez modifier le code pour trouver correctement l'URL YouTube. Pour ce faire, parcourez la $attachments
collection et reniflez l'apparence d'une URL comme une URL 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
Une chose à noter est que cela suppose que votre publication n'a pas de miniature de publication et ne se déclenchera pas une fois la miniature de publication définie.
Deuxièmement, si vous supprimez la vignette du message, puis joignez une image à ce message à l'aide du programme de téléchargement de médias, l'image la plus récente sera utilisée.
get_youtube_id
sorte que 500 erreurs de serveur sur votre application si vous utilisez jetpack avec le code ci-dessus. Si vous renommez cette fonction, cela fonctionnera a-ok