For those who are unfamiliar, the Menu Swapper plugin allows you to switch the menu you’re using on any individual Post or Page on your site. But what happens if you need to swap the menu on a custom post type?
Out of the box, the Menu Swapper will add a meta box to Posts and Pages (two standard post types) which allow you to choose which menu to display on the single post page. If you want to have the same on a custom post type, like a Portfolio Item for example, you’ll need to add that post type to the list of post types that the Menu Swapper will target.
The Menu Swapper makes this easy with the mswp_post_types
filter. You’ll just need to add a few lines of code to your child theme’s functions.php
. The main thing you’ll need is the custom post type ID – the easiest way to determine that if you’re not sure is to click on the “All {Post Type}” panel in your WordPress Admin Panel. The URL will contain the string ?post_type=portfolio
; in this case the custom post type ID would be portfolio
.
For the portfolio example, here’s what the PHP that you’d add to functions.php would look like:
function my_add_mswp_post_type( /* array */ $post_types ){ $post_types[] = 'portfolio'; // 'portfolio' is the custom post type ID //$post_types[] = 'download'; // this is how you would add a second custom post type return $post_types; } add_filter( 'mswp_post_types', 'my_add_mswp_post_type' );
Add that code to your functions.php
and you’ll get the Menu Swapper meta box on your custom post type, allowing you to change out the menu on that post type’s single page.
Enjoy!