I don’t need Yoast SEO meta box for one post type so I removed it with remove_meta_box(). Removed unneeded columns in post table by unsetting columns with manage_edit-custom_post_columns, but drop down is still left. Is there way to remove it?
Of course it is not that hard to do with jQuery, but maybe there is filter or something built in WP?
These additional dropdowns are added via the restrict_manage_posts
action hook. This means the dropdown output isn’t filterable, but you can remove the hooked action from Yoast SEO.
The filter dropdown is added by the posts_filter_dropdown()
method in the WPSEO_Metabox
class. It’s added in the setup_page_analysis()
method of the same class, which is hooked into admin_init
at priority 10.
So, we want to remove that action to prevent the dropdown from being displayed. To do so, we can simply hook into admin_init
at a priority greater than 10 (to ensure Yoast SEO has already called add_action()
). Yoast SEO stores the WPSEO_Metabox class instance in the global variable $wpseo_metabox
, so we can easily access it:
add_action( 'admin_init', 'wpse151723_remove_yoast_seo_posts_filter', 20 );
function wpse151723_remove_yoast_seo_posts_filter() {
global $wpseo_metabox;
if ( $wpseo_metabox ) {
remove_action( 'restrict_manage_posts', array( $wpseo_metabox, 'posts_filter_dropdown' ) );
}
}