Sur la page où nous listons tous les articles publiés: example.domain.com/wp-admin/edit.php
Il y a un onglet Options d'écran dans le coin supérieur droit. En cliquant dessus, un menu glisse vers le bas. Ce menu déroulant contient des cases à cocher. Lorsque vous cochez ou décochez ces cases, certaines colonnes de la table des publications sont affichées/masquées, selon qu'elles sont cochées ou non.
Je cherche un moyen d’obtenir par programme une liste de toutes les options d’écran enregistrées pour ce type de message (type de message par défaut: post). Une fois que j'obtiens une liste de ces options d'écran enregistrées, je vérifierai si un certain nombre d'options est répertorié. S'ils correspondent à un élément de la liste, je prévois de supprimer ces options.
Cliquez ici pour une capture d'écran en taille réelle
Question Comment puis-je obtenir par programme une liste de toutes les options d'écran enregistrées sur les types d'article (page avec un tableau répertoriant chaque article)?
Vous recherchez une solution similaire à celle proposée pour supprimer certaines options d’écran et certaines méta-cases de type ajout/modification .
Ce qu'il vous faut, c'est modifier la variable $columns
utilisée lors de l'affichage de la liste, que vous pouvez modifier à l'aide des crochets 'manage_posts_columns'
et 'manage_pages_columns'
pour post_type='post'
et post_type='page'
, respectivement. Si vous souhaitez ignorer les types de publication personnalisés, vous pouvez inspecter le deuxième paramètre transmis à 'manage_posts_columns'
, comme je l'ai fait dans mon exemple pour montrer comment.
Supposons donc que vous souhaitiez vous débarrasser de l'option d'écran "Commentaires" et de la colonne associée que vous voyez dans cette capture d'écran pour Articles et Pages, respectivement:
Déposez la classe suivante dans le fichier functions.php
de votre thème ou dans un plug-in que vous êtes en train de construire. Ce code supprimera l'option d'écran "Comments" et la colonne associée (cette réponse étant similaire à votre autre question , j'ai ajouté un "2"
au nom de la classe, donc dans Michael_Ecklunds_Admin_Customizer2
):
class Michael_Ecklunds_Admin_Customizer2 {
function __construct() {
add_action( 'manage_pages_columns', array( $this, 'manage_columns' ) );
add_action( 'manage_posts_columns', array( $this, 'manage_columns' ), 10, 2 );
}
function manage_columns( $columns, $post_type = 'page' ) { //2nd param not passed for pages
if ( in_array( $post_type, array( 'post', 'page' ) ) ) {
// This is only for posts and pages, 'if (in_array(...))' just illustrates how.
unset( $columns['comments'] );
}
return $columns;
}
}
new Michael_Ecklunds_Admin_Customizer2();
Et voici à quoi cela ressemble après avoir ajouté le code ci-dessus à un site WordPress 3.4:
En utilisant le débogueur Zend dans PhpStorm voici l'inspection de $columns
dans le crochet 'manage_posts_columns'
afin que vous puissiez voir les valeurs qu'une installation par défaut de WordPress 3.4 a pour la liste de modification Post encerclé les index de tableau que j'ai référencés dans mon exemple, à savoir $columns['comments']
:
J'espère que c'est ce que vous cherchiez?