Wie ändere ich die benutzerdefinierte Reihenfolge ASC / DESC menu_order dynamisch?

Ich habe einen benutzerdefinierten Post-Typ im Backend mit sort menu_order post erstellt, wie Sie auf dem Screenshot sehen können. http://prntscr.com/gacw95

Im Back-End-Sortierung ASCENDING / Descending funktioniert gut.

Aber ich muss ASC / DESC auch auf der Vorderseite sortieren.

Wenn ich im Backend auf den Order Tab klicke, wird der Post im Backend sortiert, aber nicht im Frontend.

Wie kann ich den benutzerdefinierten Post auf der Vorderseite sortieren, wenn ich das Backend ändere?

Backend-Code

 array( 'name' => __( 'Gallery', 'theme' ), 'singular_name' => __( 'Gallery', 'theme' ), 'add_new' => __( 'Add New Gallery', 'theme' ), 'add_new_item' => __( 'Add New Gallery', 'theme' ), 'edit_item' => __( 'Edit Gallery', 'theme' ), 'new_item' => __( 'New Gallery', 'theme' ), 'all_items' => __( 'All Gallery', 'theme' ), 'view_item' => __( 'View Gallery', 'theme' ), 'search_items' => __( 'Search Gallery', 'theme' ), 'not_found' => __( 'No Gallery found', 'theme' ), 'not_found_in_trash' => __( 'No Gallery found in Trash', 'theme' ), 'parent_item_colon' => '', 'menu_name' => __( 'Gallery', 'theme') ), 'public' => true, 'has_archive' => true, 'hierarchical' => false, 'menu_position' => 26, 'supports' => array( 'title', 'page-attributes', 'thumbnail', 'editor' ), 'rewrite' => array( 'slug' => 'gallery', 'with_front' => true ), 'menu_icon' => 'dashicons-format-gallery', // Icon Path ) ); } // MetaBox add_action( 'admin_init', 'ptype_gallery_register_meta_box' ); function ptype_gallery_register_meta_box() { // Check if plugin is activated or included in theme if ( !class_exists( 'RW_Meta_Box' ) ) return; $prefix = 'ptype_gallery_'; $meta_box = array( 'id' => 'gallery-settings', 'title' => 'Photo Gallery', 'pages' => array( 'ptype_gallery' ), 'context' => 'normal', 'priority' => 'core', 'fields' => array( /*array( 'name' => 'Specifications', 'desc' => '', 'id' => $prefix . 'specs', 'type' => 'textarea', 'std' => '', 'rows' => '10' ),*/ array( 'name' => 'Gallery Images', 'desc' => '', 'id' => $prefix . 'images', 'type' => 'image_advanced' ), ) ); new RW_Meta_Box( $meta_box ); } // Add a new column for the order function add_new_ptype_gallery_column($ptype_gallery_columns) { $ptype_gallery_columns['menu_order'] = "Order"; return $ptype_gallery_columns; } add_action('manage_edit-ptype_gallery_columns', 'add_new_ptype_gallery_column'); // Render the column values function show_order_column_gallery($name){ global $post; switch ($name) { case 'menu_order': $order = $post->menu_order; echo $order; break; default: break; } } add_action('manage_ptype_gallery_posts_custom_column','show_order_column_gallery'); // Set the column to be sortable function order_column_register_sortable_gallery($columns){ $columns['menu_order'] = 'menu_order'; return $columns; } add_filter('manage_edit-ptype_gallery_sortable_columns','order_column_register_sortable_gallery'); ?> 

Frontend-Code

  Template Name: Photo Gallery Page Template */ get_header(); ?> 

Dies ist meine Seitenvorlage mit der Anzeige eines benutzerdefinierten Post-Typs im Frontend, kann aber nicht wie im Backend sortiert werden.

Bitte hilf mir.

Vielen Dank.

Solutions Collecting From Web of "Wie ändere ich die benutzerdefinierte Reihenfolge ASC / DESC menu_order dynamisch?"

Sie können pre_get_posts und das order_by Argument von WP_Query . Von einem Plugin oder functions.php des aktiven Themas, etwas wie folgt (ungetestetes Beispiel):

 add_action( 'pre_get_posts', 'my_post_type_sort', 10, 1); function my_post_type_sort( $query ) { if ( is_admin || ! $query->is_main_query() ) { return; } if ( $query->get('post_type') !== 'name_of_post_type' ) { return; } $query->set('orderby', array( 'menu_order' => 'ASC') ); }