本文整理汇总了PHP中Jetpack_PostImages::from_thumbnail方法的典型用法代码示例。如果您正苦于以下问题:PHP Jetpack_PostImages::from_thumbnail方法的具体用法?PHP Jetpack_PostImages::from_thumbnail怎么用?PHP Jetpack_PostImages::from_thumbnail使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Jetpack_PostImages
的用法示例。
在下文中一共展示了Jetpack_PostImages::from_thumbnail方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: enhanced_og_has_featured_image
function enhanced_og_has_featured_image($post_id)
{
$featured = Jetpack_PostImages::from_thumbnail($post_id, 200, 200);
if (!empty($featured) && count($featured) > 0) {
return true;
}
return false;
}
示例2: twitter_cards_tags
static function twitter_cards_tags($og_tags)
{
global $post;
if (post_password_required()) {
return $og_tags;
}
if (apply_filters('jetpack_disable_twitter_cards', false)) {
return $og_tags;
}
/*
* These tags apply to any page (home, archives, etc)
*/
$site_tag = apply_filters('jetpack_twitter_cards_site_tag', self::site_tag());
$og_tags['twitter:site'] = self::sanitize_twitter_user($site_tag);
if (!is_singular() || !empty($og_tags['twitter:card'])) {
return $og_tags;
}
/*
* The following tags only apply to single pages.
*/
$card_type = 'summary';
// Try to give priority to featured images
if (class_exists('Jetpack_PostImages')) {
$featured = Jetpack_PostImages::from_thumbnail($post->ID, 240, 240);
if (!empty($featured) && count($featured) > 0) {
if ((int) $featured[0]['src_width'] >= 280 && (int) $featured[0]['src_height'] >= 150) {
$card_type = 'summary_large_image';
$og_tags['twitter:image:src'] = add_query_arg('w', 640, $featured[0]['src']);
} else {
$og_tags['twitter:image'] = add_query_arg('w', 240, $featured[0]['src']);
}
}
}
// Only proceed with media analysis if a featured image has not superseded it already.
if (empty($og_tags['twitter:image']) && empty($og_tags['twitter:image:src'])) {
if (!class_exists('Jetpack_Media_Summary') && defined('IS_WPCOM') && IS_WPCOM) {
include WP_CONTENT_DIR . '/lib/class.wpcom-media-summary.php';
}
// Test again, class should already be auto-loaded in Jetpack.
// If not, skip extra media analysis and stick with a summary card
if (class_exists('Jetpack_Media_Summary')) {
$extract = Jetpack_Media_Summary::get($post->ID);
if ('gallery' == $extract['type']) {
list($og_tags, $card_type) = self::twitter_cards_define_type_based_on_image_count($og_tags, $extract);
} else {
if ('video' == $extract['type']) {
// Leave as summary, but with large pict of poster frame (we know those comply to Twitter's size requirements)
$card_type = 'summary_large_image';
$og_tags['twitter:image:src'] = add_query_arg('w', 640, $extract['image']);
} else {
list($og_tags, $card_type) = self::twitter_cards_define_type_based_on_image_count($og_tags, $extract);
}
}
}
}
$og_tags['twitter:card'] = $card_type;
// If we have information on the author/creator, then include that as well
if (!empty($post) && !empty($post->post_author)) {
$handle = apply_filters('jetpack_sharing_twitter_via', '', $post->ID);
if (!empty($handle) && 'wordpressdotcom' != $handle && 'jetpack' != $handle) {
$og_tags['twitter:creator'] = self::sanitize_twitter_user($handle);
}
}
// Make sure we have a description for Twitter, their validator isn't happy without some content (single space not valid).
if (!isset($og_tags['og:description']) || '' == trim($og_tags['og:description']) || __('Visit the post for more.', 'jetpack') == $og_tags['og:description']) {
// empty( trim( $og_tags['og:description'] ) ) isn't valid php
$has_creator = !empty($og_tags['twitter:creator']) && '@wordpressdotcom' != $og_tags['twitter:creator'] ? true : false;
if ('photo' == $card_type) {
$og_tags['twitter:description'] = $has_creator ? sprintf(__('Photo post by %s.', 'jetpack'), $og_tags['twitter:creator']) : __('Photo post.', 'jetpack');
} else {
if (!empty($extract) && 'video' == $extract['type']) {
// use $extract['type'] since $card_type is 'summary' for video posts
$og_tags['twitter:description'] = $has_creator ? sprintf(__('Video post by %s.', 'jetpack'), $og_tags['twitter:creator']) : __('Video post.', 'jetpack');
} else {
if ('gallery' == $card_type) {
$og_tags['twitter:description'] = $has_creator ? sprintf(__('Gallery post by %s.', 'jetpack'), $og_tags['twitter:creator']) : __('Gallery post.', 'jetpack');
} else {
$og_tags['twitter:description'] = $has_creator ? sprintf(__('Post by %s.', 'jetpack'), $og_tags['twitter:creator']) : __('Visit the post for more.', 'jetpack');
}
}
}
}
return $og_tags;
}
示例3: get_image_fields
/**
* @param $post A post object
* @param $args (array) Optional args, see defaults list for details
* @returns array Returns an array of all images meeting the specified criteria in $args
*
* Uses Jetpack Post Images
*/
private static function get_image_fields($post, $args = array())
{
$defaults = array('width' => 200, 'height' => 200);
$args = wp_parse_args($args, $defaults);
$image_list = array();
$image_booleans = array();
$image_booleans['gallery'] = 0;
$from_featured_image = Jetpack_PostImages::from_thumbnail($post->ID, $args['width'], $args['height']);
if (!empty($from_featured_image)) {
$srcs = wp_list_pluck($from_featured_image, 'src');
$image_list = array_merge($image_list, $srcs);
}
$from_slideshow = Jetpack_PostImages::from_slideshow($post->ID, $args['width'], $args['height']);
if (!empty($from_slideshow)) {
$srcs = wp_list_pluck($from_slideshow, 'src');
$image_list = array_merge($image_list, $srcs);
}
$from_gallery = Jetpack_PostImages::from_gallery($post->ID);
if (!empty($from_gallery)) {
$srcs = wp_list_pluck($from_gallery, 'src');
$image_list = array_merge($image_list, $srcs);
$image_booleans['gallery']++;
// @todo This count isn't correct, will only every count 1
}
// @todo Can we check width/height of these efficiently? Could maybe use query args at least, before we strip them out
$image_list = Jetpack_Media_Meta_Extractor::get_images_from_html($post->post_content, $image_list);
return Jetpack_Media_Meta_Extractor::build_image_struct($image_list);
}