Erhalten Sie mehrere benutzerdefinierte Posts gleichzeitig in edit.php? Post_type Anfrage

Ich plane eine benutzerdefinierte Post-Typ-functionalität für mein Theme und muss mehr als nur einen post_type in einer Admin-Übersichtstabelle anzeigen können. Ich stelle mir vor, dass diese Anfrage wie edit.php?post_type[]=theme_slide_nivo&post_type[]=theme_slide_other aussehen könnte: edit.php?post_type[]=theme_slide_nivo&post_type[]=theme_slide_other . Habe das nicht wirklich versucht, aber ich bin ziemlich zuversichtlich, dass es nicht funktionieren wird. So Jungs, ist es möglich, ein solches Ergebnis ohne Hacker Core zu erreichen?

Solutions Collecting From Web of "Erhalten Sie mehrere benutzerdefinierte Posts gleichzeitig in edit.php? Post_type Anfrage"

Ich habe es ausprobiert, um eine Vorstellung von den Problemen zu bekommen, denen Sie begegnen werden. Mit dem folgenden Code können Sie mehrere Post-Typen mit dem Parameter multi_post_type angeben:

 add_action( 'pre_get_posts', 'wpse12970_pre_get_posts' ); function wpse12970_pre_get_posts( &$wp_query ) { if ( is_admin() && array_key_exists( 'multi_post_type', $_GET ) ) { $wp_query->set( 'post_type', $_GET['multi_post_type'] ); add_filter( 'the_posts', 'wpse12970_the_posts', 10, 2 ); } } function wpse12970_the_posts( $posts, &$wp_query ) { $wp_query->set( 'post_type', $GLOBALS['post_type'] ); return $posts; } 

Das erste Problem bestand darin, dass der globale $post_type ein einzelner Typ sein sollte, sonst brechen andere functionen. Also “schmuggeln” wir die verschiedenen Post-Typen unter einem anderen Namen ein und entfernen sie wieder, nachdem die Abfrage ausgeführt wurde.

Der Zähler am Anfang der Liste und die benutzerdefinierten Spalten basieren nur auf einem Posttyp. Wenn es viele Ergebnisse gibt, wird das Paging wahrscheinlich unterbrochen.

Wenn Sie dies tun möchten, sollten Sie Ihre eigene WP_List_Table , ein Kind von WP_List_Table , wie WP_Posts_List_Table aber dann für mehrere Beitragstypen WP_Posts_List_Table . Da edit.php diese Tabelle standardmäßig lädt und ich keine Möglichkeit sehe sie abzufangen, sollten Sie Ihre eigene edit.php in Ihrem Plugin erstellen und diese verwenden. Ich denke, es ist machbar und wahrscheinlich interessant, aber eine Menge Arbeit.