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

Top Posts & Pages Widget: Remove all Popular posts that weren’t published within the last month

Top Posts & Pages Widget: Remove all Popular posts that weren’t published within the last month

By default, the Top Posts widget includes all popular posts on your site in the past 2 days, even if those posts were published a long time ago. The jetpack_widget_get_top_posts filter allows you to change that, and remove all Popular posts that weren’t published within the last month.

/**
 * Remove all Popular posts that weren't published within the last month
 */
function jeherve_remove_old_top_posts( $posts, $post_ids, $count ) {
    foreach ( $posts as $k => $post ) {
        // Date when the post was published
        $post_date = strtotime( get_the_date( 'Ymd', $post['post_id'] ) );
 
        // If the post was published more than 30 days ago, let's remove it from the Top Posts widget
        if ( $post_date < strtotime( '-30 days' ) ) {
            unset( $posts[$k] );
        }
    }
    return $posts;
}
add_filter( 'jetpack_widget_get_top_posts', 'jeherve_remove_old_top_posts', 10, 3 );
Posted in Code snippets | Tagged , , , , | Comments Off on Top Posts & Pages Widget: Remove all Popular posts that weren’t published within the last month

Sitemaps: add Custom Post Type support

By default, Jetpack’s new Sitemaps module supports Posts and Pages. It also supports Jetpack’s Custom Content Types if you use them on your site.

If you’d like to add support for another Custom Post Type, you can use the jetpack_sitemap_post_types filter, like so:

function jeherve_add_cpt_sitemaps( $post_types ) {
	$post_types[] = 'your_post_type';
	return $post_types;
}
add_filter( 'jetpack_sitemap_post_types', 'jeherve_add_cpt_sitemaps' );
Posted in Code snippets | Tagged , , , | Comments Off on Sitemaps: add Custom Post Type support

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