Sortieren Sie die Reihenfolge der benutzerdefinierten Post-Typen für Endbenutzer visuell

Jetzt mit diesen benutzerdefinierten Post-Typen und anderen Teilen des Inhalts, die nicht unbedingt chronologisch nach Datum geordnet sein müssen, zum Beispiel: Der Kunde hat ein 100 T-Shirt als benutzerdefinierten Posttyp “SHIRT” und er möchte seine Erscheinungsreihenfolge einstellen .

Welche Vorgehensweise schlagen Sie vor, um dem Redakteur / Admin der Site SORT ihre Bestellung zu überlassen?

Solutions Collecting From Web of "Sortieren Sie die Reihenfolge der benutzerdefinierten Post-Typen für Endbenutzer visuell"

Sie können über Taxonomie filtern

// to filter by category function restrict_manage_posts() { global $typenow; if ( FB_CPT_POST_TYPE_1 == $typenow ) { $args = array('orderby' => 'count', 'hide_empty' => true); echo $this->get_taxonomy_html_select(FB_CPT_TAXONOMY_TYPE_1, $args); } } function get_taxonomy_html_select($taxonomy_name, $args) { $taxonomy = get_taxonomy($taxonomy_name); $terms = get_terms($taxonomy_name, $args); $label = __( 'Show all ' . $taxonomy->label, FB_CPT_TEXTDOMAIN ); $html = array(); $html[] = '' . "\n"; return implode( "\n", $html ); } function request($request) { global $pagenow; if ( is_admin() && 'edit.php' == $pagenow && isset( $request[FB_CPT_TAXONOMY_TYPE_1] ) && FB_CPT_POST_TYPE_1 == $request[FB_CPT_TAXONOMY_TYPE_1] ) { $request['taxonomy'] = FB_CPT_TAXONOMY_TYPE_1; $request['term'] = get_term($request[FB_CPT_TAXONOMY_TYPE_1], FB_CPT_TAXONOMY_TYPE_1)->name; unset($request['name']); } return $request; } 

Verwende diese Haken

  // to filter custom post type per custom taxonomy add_action( 'restrict_manage_posts', array( &$this, 'restrict_manage_posts') ); add_action( 'request', array( &$this, 'request' ) ); 

Ich würde die Admin-Bildschirme des Menü-Generators betrachten. Da ein Menü nur ein benutzerdefinierter Beitragstyp ist, kann ich sicher sein, dass einige dieser Dinge als Inspiration dienen können ..

Um eine wirklich willkürliche Sortierreihenfolge zu haben (die völlig unabhängig von einem Post-Feld ist), müssen Sie ein “Sortierwert” (oder “Gewicht”) Feld erstellen und einen numerischen Wert für jedes Element in diesem Feld eingeben. Sie können dann nach diesem Feld sortieren.

Wenn Sie nur eine Position für jedes “Shirt” festlegen möchten, dann verwenden Sie einfach die Menüfolge, dann können Sie in Ihrer WP_Query nach menu_order sortieren. Sie müssen wahrscheinlich eine menu_order Eigenschaft menu_order des menu_order . Dann in Ihrer WP_Query :

$shirts = new WP_Query( 'post_type=shirt&orderby=menu_order&order=ASC' );

Dies funktioniert ähnlich wie bei der Bestellung von Bildern auf der Registerkarte Media Upload Galerie für die Menüfolge einer bestimmten Seite.

Oder verstehe ich etwas falsch?

Was ich am liebsten mache, wenn ich den Post-Typ in einem Plugin oder in Code erstelle, ist auch, diesen Code hinzuzufügen, mit dem Sie eine Standardreihenfolge für das Front- und Backend festlegen und auch die GET-Variable in admin setzen können dass der WordPress-Administrator die Änderung erkennt und den Pfeil nach oben sortiert, wenn Sie nach Titel, Datum oder anderem in der Admin-Tabelle angezeigten Element sortieren.

 add_filter( 'pre_get_posts' , 'my_cpt_order' ); // Runs before the posts are fetched function my_cpt_order( $query ) { // Check query and alter only the query needed //echo '
'; print_r($query); echo '

'; if ($query->query['post_type'] == 'cpt' && !isset($query->query['orderby'])) { $query->set( 'orderby' , 'title' ); $query->set( 'order' , 'asc' ); //get the arrow to show up over title in admin if (is_admin()) { $_GET['orderby'] = 'title'; $_GET['order'] = 'asc'; } } //if } //my_cpt_order

Da menu_order der Standardwert ist, wird dies nicht benötigt, wenn Sie einen benutzerdefinierten Post-Typ nach menu_order sortieren, aber wenn es sich um einen Post-Typ handelt, bei dem der Benutzer sich nicht um die Sortierung kümmern muss und etwas wie title verwenden möchte Es ist sehr praktisch.