Câu trả lời:
Không phải nguyên bản. Bạn sẽ phải viết một số mã để thực hiện nó - có một hàm pastebin đẹp cung cấp mã cần thiết để thực hiện.
Chỉnh sửa (19/12/2011):
Đúng đây là cách bạn có thể làm điều này theo chương trình. Thêm hai chức năng sau vào tệp tin.php của bạn và bạn sẽ thấy ổn. Mã này đã được nhận xét để giải thích những gì đang xảy ra, nhưng đây là mức độ cao của những gì mong đợi:
Bạn phải...
Mã sẽ ...
Lưu ý rằng nếu bạn bao gồm nhiều URL trong bài đăng của mình, bạn sẽ cần sửa đổi mã để tìm đúng URL YouTube. Điều này có thể được thực hiện bằng cách lặp qua $attachments
bộ sưu tập và tìm ra URL nào trông giống như một 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
Một điều cần lưu ý là điều này giả định rằng bài đăng của bạn không có hình thu nhỏ bài đăng và sẽ không kích hoạt khi hình thu nhỏ bài đăng được đặt.
Thứ hai, nếu bạn xóa hình thu nhỏ của bài đăng và sau đó đính kèm hình ảnh vào bài đăng này bằng trình tải lên phương tiện, hình ảnh gần đây nhất sẽ được sử dụng.
get_youtube_id
500 máy chủ sẽ lỗi ứng dụng của bạn nếu bạn sử dụng jetpack với mã trên. Nếu bạn đổi tên chức năng đó, nó sẽ hoạt động bình thường