Pregunta:
No necesito el metabox de Yoast SEO para un tipo de publicación, así que lo eliminé con remove_meta_box (). Se eliminaron las columnas innecesarias en la tabla de publicaciones al desmarcar las columnas con manage_edit-custom_post_columns, pero aún queda el menú desplegable. ¿Hay alguna forma de eliminarlo?
Por supuesto, no es tan difícil de hacer con jQuery, pero ¿tal vez hay un filtro o algo integrado en WP?
Respuesta:
Estos menús desplegables adicionales se agregan a través del gancho de acción restrict_manage_posts
. Esto significa que la salida desplegable no se puede filtrar, pero puede eliminar la acción enganchada de Yoast SEO.
El menú desplegable de filtros se agrega mediante el método posts_filter_dropdown()
en la clase WPSEO_Metabox
. Se agrega en el método setup_page_analysis()
de la misma clase, que está conectado a admin_init
con prioridad 10.
Por lo tanto, queremos eliminar esa acción para evitar que se muestre el menú desplegable. Para hacerlo, simplemente podemos conectar admin_init
con una prioridad mayor que 10 (para asegurarnos de que Yoast SEO ya haya llamado add_action()
). Yoast SEO almacena la instancia de la clase WPSEO_Metabox en la variable global $wpseo_metabox
, por lo que podemos acceder fácilmente a ella:
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' ) );
}
}