Catégories
DĂ©veloppement WordPress

👌Yoast : supprimer les metabox, colonnes et filtres inutiles pour certains types de publications et taxonomies

La rĂšgle de base pour un back-office utilisable : si ce n’est pas utile, alors ça n’a rien Ă  faire lĂ  !

Pour les types de publications et taxonomies non publics – et donc n’ayant pas Ă  s’afficher en front-end – il est conseillĂ© pour amĂ©liorer la qualitĂ© de l’interface utilisĂ©e par les administrateurs de sites de retirer les mĂ©taboxes et autres informations proposĂ©es par Yoast afin d’allĂ©ger l’interface.

De toute façon, ces contenus Ă©tant privĂ©s, aucun intĂ©rĂȘt d’optimiser leur rĂ©fĂ©rencement (cela est mĂȘme contre-productif car nos chers clients risquent de passer du temps Ă  optimiser des contenus qui n’ont aucun intĂ©rĂȘt Ă  l’ĂȘtre 🙂

PrĂ©cision : cet article explique comment faire cela via le fichier functions.php de votre thĂšme. Vous pouvez Ă©galement faire de mĂȘme en back-office de votre site en allant dans les rĂ©glages de Yoast. Le seul inconvĂ©nient, c’est que cela peut alors ĂȘtre rĂ©activĂ© plus tard par quelqu’un d’autre.

Hop, on commence par le premier truc Ă  supprimer, qui concerne l’Ă©diteur 👇

📩Supprimer la metabox Yoast de l’Ă©dition des publications et des taxonomies

La metabox Yoast s’affiche en dessous de votre contenu. Ici, un exemple avec un type de publication n’utilisant pas d’Ă©diteur mais uniquement des champs personnalisĂ©s (ici une carte de gĂ©olocalisation Leaflet) et n’Ă©tant jamais directement affichĂ©e en front : aucun intĂ©rĂȘt de conserver la metabox Yoast !

Pour supprimer la metabox ajoutĂ©e dans l’Ă©diteur par Yoast, c’est assez simple : il suffit d’utiliser la fonction remove_meta_box() en ciblant la metabox ayant l’ID wpseo_meta.

Exemple :

remove_meta_box( 'wpseo_meta', 'cpt', 'normal' );

Remplacez cpt par le slug de votre type de publication ou de votre taxonomie.

On fait tout ça sur le hook add_meta_box pour que l’action se dĂ©clenche aprĂšs leur ajout.

Code complet pour le custom post type « location Â» et la taxonomie « location-cat Â» :

function jba_remove_wp_seo_meta_box() {
	remove_meta_box( 'wpseo_meta', 'location', 'normal' );
	remove_meta_box( 'wpseo_meta', 'location-area', 'normal' );
}
add_action( 'add_meta_boxes', 'jba_remove_wp_seo_meta_box', 100 );

C’Ă©tait pas difficile pas vrai ? Maintenant, attaquons nous aux listing de publications ! Pas d’inquiĂ©tude, ce n’est pas bien plus compliquĂ© 😏

📐Supprimer les colonnes ajoutĂ©es par Yoast dans les listings de publications et dans les listings de termes de taxonomies

Exemple de colonnes ajoutĂ©es par Yoast dans le listing d’un type de publication sur l’administration WordPress.

On utilise pour cela le filtre manage_{$post_type}_posts_columns, avec le type de publication (ou la taxonomie) Ă  la place de {post_type} dans le nom du filtre.

À l’intĂ©rieur de la fonction associĂ©e au filtre, il suffit de faire un unset() de la colonne de listing associĂ©e. Voici le code pour virer toutes les colonnes que Yoast est susceptible d’ajouter, pour le type de publication « location » et la taxonomie « location-cat » :

function jba_remove_wp_seo_columns( $columns ) {
	unset( $columns['wpseo-score'] );
	unset( $columns['wpseo-score-readability'] );
	unset( $columns['wpseo-title'] );
	unset( $columns['wpseo-metadesc'] );
	unset( $columns['wpseo-focuskw'] );
	unset( $columns['wpseo-links'] );
	unset( $columns['wpseo-linked'] );
	return $columns;
}
add_filter( 'manage_edit-location_columns', 'jba_remove_wp_seo_columns', 10, 1 );
add_filter( 'manage_edit-location-cat_columns', 'jba_remove_wp_seo_columns', 10, 1 );

Super facile ! Pour finir, il nous reste quelques Ă©lĂ©ments de Yoast Ă  supprimer pour nos custom post types  et taxonomies 👇

🔎DĂ©sactiver l’analyse de lisibilitĂ© et les filtres Yoast dans les listings de types de publications

Les filtres de Yoast sont présents juste au dessus des pages de liste de vos types de publications personnalisés et taxonomies (les deux listes déroulantes Yoast).

Pour supprimer les filtres proposés par Yoast sur les listings de publications, il suffit de désactiver les méta colonnes posts_filter_dropdown et posts_filter_dropdown_readability.

Exemple avec les mĂȘmes types de publications et taxonomies personnalisĂ©es que plus haut :

// Remove Yoast analysis tools and filters
function jba_remove_wp_seo_page_analysis() {
	global $wpseo_meta_columns;
	$current_screen = get_current_screen();
	if ( 'edit-location' === $current_screen->id || 'edit-location-cat' === $current_screen->id ) {
		// Suppression de l'analyse de lisibilité
		add_filter( 'wpseo_use_page_analysis', '__return_false' );
		// Suppression des filtres
		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' ) );
		}
	}
}
add_action( 'current_screen', 'jba_remove_wp_seo_page_analysis' );

Dans la condition ligne 5, remplacer edit-location et edit-location-cat par edit-slug_de_ton_type_de_publication ou edit-slug_de_ta_taxonomie.

Illustration : Claude Monet – Champs de tulipes en Hollande – MusĂ©e d’Orsay
(modifiĂ© par ajout d’un filtre sĂ©pia – consulter l’original)

Mentions légales