不是天生的。你必须编写一些代码来实现它-有一个很好的pastebin 提供必要代码的函数。
Edit (12/19/2011):
是的,下面是如何通过编程实现这一点。将以下两个函数添加到函数中。php文件,你应该很好去。对代码进行了注释,以解释发生了什么,但这里有一个高级别的预期:
你必须。。。
在内容中创建帖子,包括YouTube URL,代码将。。。
从内容中解析URL将获取它找到的第一个URL,并假定它是YouTube URL从远程服务器获取缩略图并下载它,将其设置为当前帖子的缩略图请注意,如果在帖子中包含多个URL,则需要修改代码以正确查找YouTube URL。这可以通过遍历$attachments
收集并嗅出什么URL看起来像YouTube URL。
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
需要注意的一点是,这假设您的帖子没有帖子缩略图,并且一旦设置了帖子缩略图,就不会触发。
其次,如果删除帖子缩略图,然后使用媒体上载程序将图像附加到此帖子,则将使用最新的图像。