Je n’ai pas besoin de la méta-boîte Yoast SEO pour un type de message, je l’ai donc supprimée avec remove_meta_box (). Suppression des colonnes inutiles dans la table des publications en désélectionnant les colonnes avec manage_edit-custom_post_columns, mais la liste déroulante est toujours laissée. Est-il possible de l'enlever?
Bien sûr, ce n'est pas si difficile à faire avec jQuery, mais peut-être existe-t-il un filtre ou quelque chose de construit dans WP?
Ces listes déroulantes supplémentaires sont ajoutées via le hook d’action restrict_manage_posts
. Cela signifie que la liste déroulante n'est pas filtrable, mais vous pouvez supprimer l'action liée à Yoast SEO.
La liste déroulante des filtres est ajoutée par la méthode posts_filter_dropdown()
dans la classe WPSEO_Metabox
. Il est ajouté dans la méthode setup_page_analysis()
de la même classe, qui est connectée à admin_init
à la priorité 10.
Nous voulons donc supprimer cette action pour empêcher l'affichage du menu déroulant. Pour ce faire, nous pouvons simplement nous connecter à admin_init
avec une priorité supérieure à 10 (pour nous assurer que Yoast SEO a déjà appelé add_action()
). Yoast SEO stocke l'instance de classe WPSEO_Metabox dans la variable globale $wpseo_metabox
, afin que nous puissions y accéder facilement:
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' ) );
}
}
Réponse mise à jour pour Yoast SEO Version: 7.0.2
Cela supprimera à la fois le filtre de score de référencement et le filtre de lisibilité de la page d'édition de liste de messages dans l'administrateur WordPress.
add_action( 'admin_init', 'bb_remove_yoast_seo_admin_filters', 20 );
function bb_remove_yoast_seo_admin_filters() {
global $wpseo_meta_columns ;
if ( $wpseo_meta_columns ) {
remove_action( 'restrict_manage_posts', array( $wpseo_meta_columns , 'posts_filter_dropdown' ) );
remove_action( 'restrict_manage_posts', array( $wpseo_meta_columns , 'posts_filter_dropdown_readability' ) );
}
}
et vous pouvez ajouter cette ligne à la fonction ci-dessus pour supprimer également la liste déroulante Lisibilité:
remove_action( 'restrict_manage_posts', array( $wpseo_meta_columns, 'posts_filter_dropdown_readability' ) );