J'ai créé avec succès un type de message personnalisé. J'essaie de créer une URL qui pointe vers une liste combinée de publications de tous les types de publication sur la page Afficher toutes les publications dans la vue administrateur.
Je peux construire une URL qui pointe vers des publications de types de publication spécifiques, par exemple http://<mysite>//wp-admin/edit.php?post_type=my_post_type
. Mais je ne trouve pas de moyen de lister les posts de tous les types.
Est-il possible d'utiliser la balise /wp-admin/edit.php?post_type=
pour pointer vers une page répertoriant les publications de tous les types de publication? Ou, sinon, comment puis-je créer une URL qui le fera?
La seule façon dont cela pourrait fonctionner serait ?post_type=any
basé sur WP_Query post_type params.
Mais le contexte est le problème, la page edit.php
requiert un type de publication spécifique pour afficher et modifier un seul objet $ post_type_object qui renvoie, pour chaque type de message, une seule étiquette singulière, une étiquette plurielle et de nombreuses autres propriétés individuelles.
Ce ne sont pas seulement des problèmes techniques de blocage, mais aussi des problèmes conceptuels qui rendent cette tâche impossible.
Personnellement, je voudrais faire une recherche sur "Comment créer une page d’administrateur personnalisée" avec une requête comme post_type=any
Vous pouvez utiliser pre_get_posts
avec un paramètre $_GET
et se greffer sur le type de publication actuel. Par exemple, si vous visualisez all éditable dans le panneau d'administration, vous pouvez ajouter un paramètre showall=true
et afficher tous les types de publication:
/**
* Show all post editable post types
*
* @param WP_Query Object $query
*
* @return void
*/
function show_all_posttypes( $query ) {
if( ! is_admin() ) {
return;
}
if( isset( $_GET, $_GET['showall'] ) && true == $_GET['showall'] ) {
$query->set( 'post_type', 'any' );
}
}
add_filter( 'pre_get_posts', 'show_all_posttypes' );
Si vous souhaitez limiter les types de publication d'une manière ou d'une autre, vous pouvez utiliser get_post_types()
function et transmettre les types de publication renvoyés dans le paramètre post_type
sous la forme d'un tableau ().
Nous pouvons même ajouter ceci en tant que lien d’administration de sous-page pour faciliter l’accès:
/**
* Show All Post Types Link
* - Subpage of "All Pages"
*
* @return void
*/
function show_all_posttypes_link() {
add_submenu_page('edit.php?post_type=page', '', 'All Post Types', 'edit_posts', '/edit.php?post_type=page&showall=true');
}
add_action( 'admin_menu', 'show_all_posttypes_link' );
Vous pouvez continuer à étendre ceci encore et encore pour personnaliser les sorties de colonne et autres, mais c'est là l'essentiel.