Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

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?

share|improve this question
add comment

1 Answer 1

up vote 1 down vote accepted

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' ) );
    }
}
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.