function wm_logo() { //Helper variables $output = ''; $blog_info = apply_filters('wmhook_wm_logo_blog_info', array('name' => trim(get_bloginfo('name')), 'description' => trim(get_bloginfo('description')))); $args = apply_filters('wmhook_wm_logo_args', array('title_att' => $blog_info['description'] ? $blog_info['name'] . ' | ' . $blog_info['description'] : $blog_info['name'], 'logo_image' => function_exists('jetpack_get_site_logo') ? absint(jetpack_get_site_logo('id')) : false, 'logo_type' => 'text', 'url' => home_url('/'))); //Preparing output //Logo image if (!empty($args['logo_image'])) { $img_id = is_numeric($args['logo_image']) ? absint($args['logo_image']) : wm_get_image_id_from_url($args['logo_image']); if ($img_id) { $logo_url = wp_get_attachment_image_src($img_id, 'full'); $atts = (array) apply_filters('wmhook_wm_logo_image_atts', array('alt' => esc_attr(sprintf(_x('%s logo', 'Site logo image "alt" HTML attribute text.', 'wm_domain'), $blog_info['name'])), 'title' => esc_attr($args['title_att']), 'class' => '')); $args['logo_image'] = wp_get_attachment_image($img_id, 'full', false, $atts); } $args['logo_type'] = 'img'; } $args['logo_image'] = apply_filters('wmhook_wm_logo_logo_image', $args['logo_image']); //Logo HTML $output .= '<div class="site-branding">'; $output .= '<h1 class="' . apply_filters('wmhook_wm_logo_class', 'site-title logo type-' . $args['logo_type'], $args) . '">'; $output .= '<a href="' . esc_url($args['url']) . '" title="' . esc_attr($args['title_att']) . '">'; if ('text' === $args['logo_type']) { $output .= '<span class="text-logo">' . $blog_info['name'] . '</span>'; } else { $output .= $args['logo_image']; } $output .= '</a></h1>'; if ($blog_info['description']) { $output .= '<h2 class="site-description">' . $blog_info['description'] . '</h2>'; } $output .= '</div>'; //Output echo apply_filters('wmhook_wm_logo_output', $output); }
/** * Retrieve the site logo URL or ID (URL by default). Pass in the string * 'id' for ID. * * @since 0.1.0 * @uses GenLib_Site_Logo::get_site_logo * @param string $format the format to return * @return mixed The URL or ID of our site logo, false if not set */ function genlib_get_logo($format = 'url') { if (class_exists('GenLib_Site_Logo', false)) { return genlib_class('site-logo')->get_site_logo($format); } if (function_exists('jetpack_the_site_logo')) { return jetpack_get_site_logo($format); } }
/** * Retrieve the site logo URL or ID (URL by default). Pass in the string * 'id' for ID. * * @since 1.1.0 * @uses Flagship_Site_Logo::get_flagship_logo * @param string $format the format to return * @return mixed The URL or ID of our site logo, false if not set */ function flagship_get_logo($format = 'url') { if (!class_exists('Flagship_Site_Logo', false)) { if (function_exists('jetpack_the_site_logo')) { return jetpack_get_site_logo($format); } if (function_exists('the_site_logo')) { return get_site_logo($format); } return null; } return flagship_library()->site_logo->get_flagship_logo($format); }
/** * @author automattic * @covers ::jetpack_og_get_image * @since 3.9.2 */ public function test_jetpack_og_get_site_icon_and_logo_url() { $test_icon_id = self::_create_upload_object(dirname(__FILE__) . '/jetpack-icon.jpg'); // Test Jetpack's Site Logo update_option('site_logo', array('id' => $test_icon_id, 'url' => wp_get_attachment_url($test_icon_id))); require_once JETPACK__PLUGIN_DIR . 'modules/theme-tools/site-logo/inc/functions.php'; require_once JETPACK__PLUGIN_DIR . 'modules/theme-tools/site-logo/inc/class-site-logo.php'; $image_url = jetpack_og_get_image(); $this->assertEquals($image_url['src'], jetpack_get_site_logo('url')); // Test core's Site Icon update_option('site_icon', $test_icon_id); $image_url = jetpack_og_get_image(); $this->assertEquals($image_url['src'], get_site_icon_url(512)); delete_option('site_icon'); wp_delete_attachment($test_icon_id); }
function cultiv8_get_site_logo() { if (function_exists('get_custom_logo')) { // Try to use WP4.5 built in site logo feature return wp_get_attachment_image_url(get_theme_mod('custom_logo'), 'full'); } elseif (function_exists('jetpack_get_site_logo')) { // If not available, try Jetpack's site logo feature return jetpack_get_site_logo(); } else { // Last resort, try our own feature if (get_theme_mod('cultiv8_site_logo')) { return get_theme_mod('cultiv8_site_logo'); } else { return ''; } } }
/** * @author automattic * @covers ::jetpack_og_get_image * @since 3.9.2 */ public function test_jetpack_og_get_site_icon_and_logo_url() { $default_url = jetpack_og_get_image(); // Test Jetpack's Site Logo update_option('site_logo', array('id' => $this->icon_id, 'url' => wp_get_attachment_url($this->icon_id))); require_once JETPACK__PLUGIN_DIR . 'modules/theme-tools/site-logo/inc/functions.php'; require_once JETPACK__PLUGIN_DIR . 'modules/theme-tools/site-logo/inc/class-site-logo.php'; // Test Smaller/Invalid Jetpack's Site Logo $image_url = jetpack_og_get_image(512, 512); $this->assertNotEquals(jetpack_get_site_logo('url'), $image_url['src']); $this->assertEquals($default_url['src'], $image_url['src']); // Test Valid-sized Jetpack's Site Logo $image_url = jetpack_og_get_image(128, 128); $this->assertEquals(jetpack_get_site_logo('url'), $image_url['src']); delete_option('site_logo'); update_option('site_icon', $this->icon_id); // Test Valid-sized core's Site Icon $image_url = jetpack_og_get_image(128, 128); $this->assertEquals(get_site_icon_url(128), $image_url['src']); delete_option('site_icon'); }
function jetpack_og_get_image($width = 200, $height = 200, $max_images = 4) { // Facebook requires thumbnails to be a minimum of 200x200 $image = ''; if (is_singular() && !is_home()) { global $post; $image = ''; // Grab obvious image if $post is an attachment page for an image if (is_attachment($post->ID) && 'image' == substr($post->post_mime_type, 0, 5)) { $image = wp_get_attachment_url($post->ID); } // Attempt to find something good for this post using our generalized PostImages code if (!$image && class_exists('Jetpack_PostImages')) { $post_images = Jetpack_PostImages::get_images($post->ID, array('width' => $width, 'height' => $height)); if ($post_images && !is_wp_error($post_images)) { $image = array(); foreach ((array) $post_images as $post_image) { $image['src'] = $post_image['src']; if (isset($post_image['src_width'], $post_image['src_height'])) { $image['width'] = $post_image['src_width']; $image['height'] = $post_image['src_height']; } } } } } else { if (is_author()) { $author = get_queried_object(); if (function_exists('get_avatar_url')) { // Prefer the core function get_avatar_url() if available, WP 4.2+ $image['src'] = get_avatar_url($author->user_email, array('size' => $width)); } else { $has_filter = has_filter('pre_option_show_avatars', '__return_true'); if (!$has_filter) { add_filter('pre_option_show_avatars', '__return_true'); } $avatar = get_avatar($author->user_email, $width); if (!$has_filter) { remove_filter('pre_option_show_avatars', '__return_true'); } if (!empty($avatar) && !is_wp_error($avatar)) { if (preg_match('/src=["\']([^"\']+)["\']/', $avatar, $matches)) { } $image['src'] = wp_specialchars_decode($matches[1], ENT_QUOTES); } } } } if (empty($image)) { $image = array(); } else { if (!is_array($image)) { $image = array('src' => $image); } } // First fall back, blavatar if (empty($image) && function_exists('blavatar_domain')) { $blavatar_domain = blavatar_domain(site_url()); if (blavatar_exists($blavatar_domain)) { $image['src'] = blavatar_url($blavatar_domain, 'img', $width, false, true); $image['width'] = $width; $image['height'] = $height; } } // Second fall back, Site Logo if (empty($image) && (function_exists('jetpack_has_site_logo') && jetpack_has_site_logo())) { $image['src'] = jetpack_get_site_logo('url'); $image_dimensions = jetpack_get_site_logo_dimensions(); if (!empty($image_dimensions)) { $image['width'] = $image_dimensions['width']; $image['height'] = $image_dimensions['height']; } } // Third fall back, Site Icon if (empty($image) && (function_exists('jetpack_has_site_icon') && jetpack_has_site_icon())) { $image['src'] = jetpack_site_icon_url(null, '512'); $image['width'] = '512'; $image['height'] = '512'; } // Fourth fall back, Core Site Icon. Added in WP 4.3. if (empty($image) && (function_exists('has_site_icon') && has_site_icon())) { $image['src'] = get_site_icon_url(null, '512'); } // Finally fall back, blank image if (empty($image)) { /** * Filter the default Open Graph Image tag, used when no Image can be found in a post. * * @since 3.0.0 * * @param string $str Default Image URL. */ $image['src'] = apply_filters('jetpack_open_graph_image_default', 'https://s0.wp.com/i/blank.jpg'); } return $image; }
static function twitter_cards_define_type_based_on_image_count($og_tags, $extract) { $card_type = 'summary'; $img_count = $extract['count']['image']; if (empty($img_count)) { // No images, use Blavatar as a thumbnail for the summary type. if (function_exists('blavatar_domain')) { $blavatar_domain = blavatar_domain(site_url()); if (blavatar_exists($blavatar_domain)) { $og_tags['twitter:image'] = blavatar_url($blavatar_domain, 'img', 240); } } // Second fall back, Site Logo if (empty($og_tags['twitter:image']) && (function_exists('jetpack_has_site_logo') && jetpack_has_site_logo())) { $og_tags['twitter:image'] = jetpack_get_site_logo('url'); } // Third fall back, Site Icon if (empty($og_tags['twitter:image']) && (function_exists('jetpack_has_site_icon') && jetpack_has_site_icon())) { $og_tags['twitter:image'] = jetpack_site_icon_url(null, '240'); } // Not falling back on Gravatar, because there's no way to know if we end up with an auto-generated one. } elseif (1 == $img_count && ('image' == $extract['type'] || 'gallery' == $extract['type'])) { // 1 image = photo // Test for $extract['type'] to limit to image and gallery, so we don't send a potential fallback image like a Gravatar as a photo post. $card_type = 'photo'; $og_tags['twitter:image'] = add_query_arg('w', 1400, empty($extract['images']) ? $extract['image'] : $extract['images'][0]['url']); } elseif ($img_count <= 3) { // 2-3 images = summary with small thumbnail $og_tags['twitter:image'] = add_query_arg('w', 240, empty($extract['images']) ? $extract['image'] : $extract['images'][0]['url']); } elseif ($img_count >= 4) { // >= 4 images = gallery $card_type = 'gallery'; $og_tags = self::twitter_cards_gallery($extract, $og_tags); } return array($og_tags, $card_type); }
function wm_google_fonts($fonts_setup) { //Helper variables $fonts_setup = array_unique(array_filter(array(get_theme_mod('font-family-body'), get_theme_mod('font-family-headings')))); if (!is_admin() && !(function_exists('jetpack_get_site_logo') && jetpack_get_site_logo('id')) && get_theme_mod('font-family-logo')) { $fonts_setup[] = get_theme_mod('font-family-logo'); } if (empty($fonts_setup)) { $fonts_setup = array('Ubuntu:400,300'); } //Output return $fonts_setup; }
function jetpack_og_get_image($width = 200, $height = 200, $max_images = 4) { // Facebook requires thumbnails to be a minimum of 200x200 $image = ''; if (is_singular() && !is_home()) { global $post; $image = ''; // Attempt to find something good for this post using our generalized PostImages code if (class_exists('Jetpack_PostImages')) { $post_images = Jetpack_PostImages::get_images($post->ID, array('width' => $width, 'height' => $height)); if ($post_images && !is_wp_error($post_images)) { $image = array(); foreach ((array) $post_images as $post_image) { $image[] = $post_image['src']; } } } } else { if (is_author()) { $author = get_queried_object(); if (function_exists('get_avatar_url')) { // Prefer the core function get_avatar_url() if available, WP 4.2+ $image = get_avatar_url($author->user_email, array('size' => $width)); } else { $has_filter = has_filter('pre_option_show_avatars', '__return_true'); if (!$has_filter) { add_filter('pre_option_show_avatars', '__return_true'); } $avatar = get_avatar($author->user_email, $width); if (!$has_filter) { remove_filter('pre_option_show_avatars', '__return_true'); } if (!empty($avatar) && !is_wp_error($avatar)) { if (preg_match('/src=["\']([^"\']+)["\']/', $avatar, $matches)) { } $image = wp_specialchars_decode($matches[1], ENT_QUOTES); } } } } if (empty($image)) { $image = array(); } else { if (!is_array($image)) { $image = array($image); } } // First fall back, blavatar if (empty($image) && function_exists('blavatar_domain')) { $blavatar_domain = blavatar_domain(site_url()); if (blavatar_exists($blavatar_domain)) { $image[] = blavatar_url($blavatar_domain, 'img', $width); } } // Second fall back, Site Logo if (empty($image) && (function_exists('jetpack_has_site_logo') && jetpack_has_site_logo())) { $image[] = jetpack_get_site_logo('url'); } // Third fall back, Site Icon if (empty($image) && (function_exists('jetpack_has_site_icon') && jetpack_has_site_icon())) { $image[] = jetpack_site_icon_url(null, '512'); } // Fourth fall back, blank image if (empty($image)) { $image[] = apply_filters('jetpack_open_graph_image_default', 'https://s0.wp.com/i/blank.jpg'); } return $image; }
/** * Unprefixed, backwards-compatible function for getting either the site logo's image URL or its ID. * * @param string $show Return the site logo URL or ID. * @uses jetpack_get_site_logo() * @return string Site logo ID or URL (the default). */ function get_site_logo($show = 'url') { return jetpack_get_site_logo($show); }
</header> <?php } ?> <!-- TODO customizer setting for fixed drawer --> <div class="mdl-layout__drawer"> <span class="site-title mdl-layout-title"> <?php if (function_exists('jetpack_has_site_logo') && jetpack_has_site_logo()) { ?> <img src="<?php echo esc_url(jetpack_get_site_logo('url')); ?> " alt="<?php echo esc_attr(get_bloginfo('name')); ?> " class="site-logo"> <?php } ?> <a href="<?php echo esc_url(home_url('/')); ?> " rel="home"><?php bloginfo('name'); ?>