filter

publicize_should_publicize_published_post

Determines whether a post being published gets publicized. Side-note: Possibly our most alliterative filter name.

Parameters

$should_publicize
bool

Should the post be publicized? Default to true.

$post
WP_POST

Current Post object.

Changelog

How to use this hook

See “How to use actions and filters to customize Jetpack”.

Notes

In the example below, we won’t publicize any post using the private tag:
/**
 * Do not trigger Publicize if the post uses the `private` tag.
 */
function jeherve_control_publicize( $should_publicize, $post ) {
	// Return early if we don't have a post yet (it hasn't been saved as a draft)
	if ( ! $post ) {
		return $should_publicize;
	}

	// Get list of tags for our post.
	$tags = wp_get_post_tags( $post->ID );

	// Loop though all tags, and return false if the tag's name is `private`
	foreach ( $tags as $tag ) {
		if ( 'private' == $tag->name ) {
			return false;
		}
	}

	return $should_publicize;
}
add_filter( 'publicize_should_publicize_published_post', 'jeherve_control_publicize', 10, 2 );
You can apply the same idea to ignore a specific category:
/**
 * Do not trigger Publicize if the post uses the `do-not-publicize` category.
 *
 * @param bool $should_publicize Should the post be publicized? Default to true.
 * @param WP_POST $post Current Post object.
 */
function jeherve_control_publicize_for_categories( $should_publicize, $post ) {
    // Return early if we don't have a post yet (it hasn't been saved as a draft)
    if ( ! $post ) {
        return $should_publicize;
    }
 
    // Get list of categories for our post.
	$categories = get_the_category( $post->ID );
	
	if ( is_array( $categories ) && ! empty( $categories ) ) {
		foreach( $categories as $category ) {
			if ( 'do-not-publicize' === $category->slug ) {
				return false;
			}
		}
	}
 
    return $should_publicize;
}
add_filter( 'publicize_should_publicize_published_post', 'jeherve_control_publicize_for_categories', 10, 2 );
You can apply the same idea to stop a specific user’s posts from being publicized:
/**
 * Do not trigger Publicize for a specific user.
 *
 * @param bool $should_publicize Should the post be publicized? Default to true.
 * @param WP_POST $post Current Post object.
 */
function ignore_specific_user_posts( $should_publicize, $post ) {
     
    // Assuming the user whose posts you want to ignore has the user id 2.	
    if ( get_current_user_id () === 2 ) {
        return false; 
    }
    
    return $should_publicize;
}
add_filter( 'publicize_should_publicize_published_post', 'ignore_specific_user_posts', 10, 2 );