You can use the Custom Content Types feature to add custom post types (CPTs) to your site. These CPTs allow you to add content that doesn’t necessarily fit into a post, but isn’t right for a static page either. Since this is part of Jetpack, you can even switch themes without losing these custom post types!
Portfolios
The Portfolio custom post type allows you to manage and showcase your projects on your site. To enable it, go to Jetpack → Settings → Writing in your WordPress Dashboard and toggle on the Portfolio option under Custom Content Types.
Once enabled, you can then choose to display the portfolio using the portfolio shortcode ( [portfolio]
) or add a link to it from your site menu.
Testimonials
The Testimonial custom post type allows you to add, organize, and display your testimonials. If your theme doesn’t support it yet, you can enable it by activating the Custom Content Types feature in your Jetpack settings. Once activated, go to Jetpack → Settings → Writing in your WordPress Dashboard and toggle on the Testimonials option under Custom Content Types.
You can then choose to display testimonials using the testimonial shortcode ( [testimonials]
) or you can view a full archive of your testimonials at yourgroovydomain.com/testimonial.
By default, when creating Testimonials, you cannot add tags or assign the testimonial to one of the categories on your site. If you would like that option, you will need to add a code snippet to the site. In the example below, we add support for categories:
/**
* Add Category support to the Testimonial Post Type available in Jetpack.
*/
add_action( 'init', function () {
register_taxonomy_for_object_type( 'category', 'jetpack-testimonial' );
} );
Block Themes and Custom Content Types
Starting with Jetpack 14.4, if you’re using a block theme (such Twenty Twenty-Four), you may notice that Testimonials and Portfolios no longer appear in your WP Admin, even if Jetpack is active. This is expected behavior.
Special circumstances
The setting toggles for Testimonials and Portfolios only appear if your site already has at least one published item of that content type. If no published items exist, the option to enable or manage these CPTs is hidden by default.
Switching from a legacy/classic theme (e.g., Twenty Fifteen) to a block theme will cause the CPT menu items and toggles to disappear unless content exists.
Once you trash or delete the last published item of a CPT, the toggle and admin menu items disappear as well, even on classic themes.
This change helps reduce unnecessary clutter in block theme environments where CPTs may not be relevant.
Force setting visibility with filters
If you want to force the CPT settings to remain visible, you can use filters to override the default behavior:
To always display Testimonials:
add_filter( 'classic_theme_helper_should_display_testimonials', function( $should_display ) {
return true;
} );
To always display Portfolios:
add_filter( 'classic_theme_helper_should_display_portfolios', function( $should_display ) {
return true;
} );
You can add these snippets using a functionality plugin like Code Snippets or directly in your theme’s functions.php file.
Simple Food Menus
You can add food menus to your theme by adding the following code to the functions.php file of your theme:
/**
* Add nova food menu support available in Jetpack.
*/
function yourthemeslug_jetpack_setup() {
add_theme_support( 'nova_menu_item' );
}
add_action( 'after_setup_theme', 'yourthemeslug_jetpack_setup' );
The theme Confit uses these menus.
Privacy Information
Custom Content Types are deactivated by default. You can enable them from the Jetpack → Settings → Writing tab in your WordPress Dashboard.
Data Used | |
---|---|
Site Owners / Users Because custom post types are simply posts at their core, this feature will use all the post’s data (author, content, etc.) and metadata in the creation of the content. Additionally, for activity tracking (detailed below): IP address, WordPress.com user ID, WordPress.com username, WordPress.com-connected site ID and URL, Jetpack version, user agent, visiting URL, referring URL, timestamp of event, browser language, country code. | Site Visitors None. |
Activity Tracked | |
Site Owners / Users We track when and by which user the feature is activated and deactivated. We also track when and by which user the specific custom content types (Testimonials and Portfolios) are enabled or disabled. | Site Visitors None. |
Data Synced (Read More) | |
Site Owners / Users We sync options that identify whether the feature is activated, as well as which custom content types have been enabled. We also sync all the post content and anything related to the post. See our Sync documentation for further information on what we sync around posts and pages. | Site Visitors None. |