Intereting Posts
Определите, доступно ли больше сообщений, чем было задано в `query_posts ()`? Ответ на вызов HTTP HTTP API Эффективный способ обновления нескольких метаданных Как получить первый тег сообщения в виде гиперссылки? Заблокированный админ javascript для страницы настроек плагина не выполняется Показать сообщение из пользовательского типа сообщения 403 Запрещенная ошибка на субдомене Как передать массив как атрибут короткого кода для корректного анализа парсера коротких кодов? Различные выходные данные цикла каждые x сообщений в пользовательском типе сообщения Используйте wp_logout_url () на странице создания меню Плагин Ajax не отвечает эхо-ответам Отображение дочерних страниц текущей страницы в почтовом формате и их уменьшенных изображений (изображение с изображением)? Удаление некоторых страниц из поиска Использование WP Stats без Jetpack Независимая система уведомления об обновлении плагина WordPress

Как изменить пользовательский порядок сообщений ASC / DESC menu_order разумно динамически?

Я создал собственный тип сообщения в конце с сортировкой post_order, как вы можете видеть на скриншоте. http://prntscr.com/gacw95

При сортировке на заднем конце ASCENDING / DESCENDING работает нормально.

Но мне также нужно сортировать ASC / DESC на лицевой стороне.

Когда я нажимаю на вкладку заказа в конце, он будет сортировать сообщение в конце, но не в конце.

Как я могу сортировать пользовательский пост в передней части при изменении в конце?

Внутренний код

<?php // ptype_gallery Custom Post Type add_action( 'init', 'ptype_gallery_post_type' ); function ptype_gallery_post_type() { register_post_type( 'ptype_gallery', array( 'labels' => 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'); ?> 

Код передней части

  Template Name: Photo Gallery Page Template */ get_header(); ?> <div id="main"> <div class="wrapper"> <div id="container" class="fullwidth photo-gallery-section"> <h2 class="pageTitle"> <?php the_title(); ?> </h2> <?php $args = array( 'post_type' => 'ptype_gallery', 'posts_per_page' => -1, 'post_status' => 'publish' ); // the query $the_query = new WP_Query($args); ?> <?php if ($the_query->have_posts()) : ?> <!-- pagination here --> <!-- the loop --> <?php while ($the_query->have_posts()) : $the_query->the_post(); $images = get_post_meta(get_the_ID(), 'ptype_gallery_images'); if ($images) { ?> <h4 class="pageTitle"> <?php the_title(); ?> </h4> <div class="photogallery-section"> <?php echo '<div class=""></div><div class="productImages row">'; foreach ($images as $image) { $thumb = wp_get_attachment_image_src($image, 'product_thumb'); $img = wp_get_attachment_image_src($image, 'full'); $attachment = get_post($image); ?> <div class="grid2"> <div class="productImgBx"> <div class="productImg"><a data-fancybox="gallery" href="<?php echo $img[0]; ?>"><img src="<?php echo $thumb[0]; ?>"/></a></div> <div class="productImgTitle"><?php echo $attachment->post_content; ?></div> </div> </div> <?php } echo '</div>'; ?> </div> <?php } endwhile; ?> <!-- end of the loop --> <!-- pagination here --> <?php wp_reset_postdata(); ?> <?php else : ?> <p><?php _e('Sorry, no products found.'); ?></p> <?php endif; ?> </div> </div> </div> <?php get_footer(); ?> 

Это мой шаблон страницы с отображением пользовательского типа сообщений на интерфейсе, но не может сортироваться по бэкэнд.

Пожалуйста, помогите мне.

Благодарю вас.

Вы можете подключить pre_get_posts и использовать аргумент order_by WP_Query . Из плагина или functions.php активной темы, что-то вроде следующего (непроверенный пример):

 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') ); }