SEO: Create a description meta tag based on Jetpack’s Open Graph Meta tags

Jetpack includes Open Graph Meta tags. We add these tags whenever you activate the Sharing module or the Publicize module.

These tags allow Social Networks like Facebook, LinkedIn, Google+, or Pinterest to gather information about a post and build a post preview. Without those tags, Social Networks like Facebook will in some cases reject a post that’s been posted via an app, like Publicize.

We also add Twitter Meta Cards tags, since Twitter requires its own set of tags.

These Social Networks do not rely on the description meta tag, though. That’s why we didn’t add it to the list of tags added by Jetpack. Since this tag is mostly useful for Search Engines, it’s often included in Search Engine Optimization plugins, like Yoast SEO. If you’re interested in adding the tag to your site, you could use this plugin.

Another alternative would be to extend Jetpack’s default list of tags, and add your own, based on the existing og:description tag. To do so, you can paste the following in your theme’s functions.php file, or in a functionality plugin:

/**
 * Add a new tag, named description, matching the existing og:description tag.
 *
 * If og:description doesn't exist for a post/page, do not add any new tag.
 *
 * @filter jetpack_open_graph_tags
 * @uses isset
 */
function jeherve_custom_desc_tag( $tags ) {
	if ( isset( $tags['og:description'] ) ) {
		$tags['description'] = $tags['og:description'];
	}
	return $tags;
}
add_filter( 'jetpack_open_graph_tags', 'jeherve_custom_desc_tag' );

/**
 * Replace property="description" by name="description" in the new tag.
 *
 * Jetpack uses property="thing" as template for its Meta tags,
 * because it's built to output OG Tags. However, we we want to output a general tag here.
 *
 * @filter jetpack_open_graph_output
 * @uses str_replace
 */
function jeherve_desc_tag_output( $og_tag ) {

	// Replace property="description" by name="description"
	$og_tag = str_replace( 'property="description"', 'name="description"', $og_tag );

	return $og_tag;
}
add_filter( 'jetpack_open_graph_output', 'jeherve_desc_tag_output' );
Posted in Code snippets | Tagged , , , , , | Comments Off on SEO: Create a description meta tag based on Jetpack’s Open Graph Meta tags

Sharing: do not display sharing buttons on Mobile

Whether your site uses Jetpack’s Mobile Theme or a responsive theme, it’s sometimes useful to remove sharing buttons on mobile. Since most mobile phones include built-in options to share a link on popular social networks, removing those buttons from your site can be a real performance gain on mobile.

To completely remove the buttons, we’ll use 2 Jetpack features: the sharing_show filter, and a function named jetpack_is_mobile(). That function allows you to detect whether your reader browses your site using a mobile device (with a Mobile User Agent).

// Check if we are on mobile
function jetpackme_is_mobile() {

    // Are Jetpack Mobile functions available?
    if ( ! function_exists( 'jetpack_is_mobile' ) ) {
        return false;
    }

    // Is Mobile theme showing?
    if ( isset( $_COOKIE['akm_mobile'] ) && $_COOKIE['akm_mobile'] == 'false' ) {
        return false;
    }

    return jetpack_is_mobile();
}

// Let's remove the sharing buttons when on mobile
function jetpackme_maybe_add_filter() {

    // On mobile?
    if ( jetpackme_is_mobile() ) {
        add_filter( 'sharing_show', '__return_false' );
    }
}
add_action( 'wp_head', 'jetpackme_maybe_add_filter' );
Posted in Code snippets | Tagged , , , , | Comments Off on Sharing: do not display sharing buttons on Mobile

Unlimited Video Hosting

Jetpack Premium now provides unlimited use of our video CDN. Save on hosting storage and bandwidth costs by streaming fast, ad-free video from our global network.

Learn More