Intereting Posts
Получение сообщений по таксономии Пользовательские сообщения типа сообщений в качестве подменю в меню Nav Как отключить уведомления трекбэка в блоге WordPress.com? Получить привязанность с помощью пули Изображение с миниатюрными закругленными углами w CSS (или любой другой хороший метод) Пользовательский заказ на главную страницу проблема с получением звукового URL-адреса Целевая секунда от последнего сообщения в цикле Как применить патч? ТРЕБУЕТСЯ: Не удалось найти wp_link_pages. Смотрите: wp_link_pages по теме Checker Добавление тегов и ввода в профиль пользователя WordPress Plugin с коротким кодом, который динамически генерирует javascript. Могу ли я использовать add_action без упаковки javascript в функции? Как отображать данные из настраиваемых полей в моем специальном коротком коде? wp_update_user () не обновляет user_data Как изменить редактор TinyMCE VisualComposer только для определенного короткого кода

Откорректируйте заказ для возвращенных сообщений

Я написал аккуратный отзывчивый слайдер для моих опубликованных статей WordPress (не стесняйтесь использовать его):

<?php $responsive = 'on' != get_option('henrik_responsive_layout') ? false : true; $featured_auto_class = ''; if ( 'on' == get_option('henrik_slider_auto') ) $featured_auto_class .= ' et_slider_auto et_slider_speed_' . get_option('henrik_slider_autospeed'); ?> <div id="featured" class="<?php if ( $responsive ) echo 'flexslider' . $featured_auto_class; else echo 'et_cycle'; ?>"> <a id="left-arrow" href="#"><?php esc_html_e('Previous','henrik'); ?></a> <a id="right-arrow" href="#"><?php esc_html_e('Next','henrik'); ?></a> <?php if ( $responsive ) { ?> <ul class="slides"> <?php } else { ?> <div id="slides"> <?php } ?> <?php global $ids; $ids = array(); $arr = array(); $i=0; $featured_cat = get_option('henrik_feat_cat'); $featured_num = (int) get_option('henrik_featured_num'); if (get_option('henrik_use_pages') == 'false') query_posts("showposts=$featured_num&cat=".get_cat_ID($featured_cat)); else { global $pages_number; if (get_option('henrik_feat_pages') <> '') $featured_num = count(get_option('henrik_feat_pages')); else $featured_num = $pages_number; query_posts(array ('post_type' => 'page', 'orderby' => 'menu_order', 'order' => 'ASC', 'post__in' => (array) get_option('henrik_feat_pages'), 'showposts' => (int) $featured_num )); } ?> <?php if (have_posts()) : while (have_posts()) : the_post(); global $post; ?> <?php if ( $responsive ) { ?> <li class="slide"> <?php } else { ?> <div class="slide"> <?php } ?> <?php $width = $responsive ? 960 : 958; $height = 340; $small_width = 95; $small_height = 54; $titletext = get_the_title(); $thumbnail = get_thumbnail($width,$height,'',$titletext,$titletext,false,'Featured'); $arr[$i]['thumbnail'] = get_thumbnail($small_width,$small_height,'',$titletext,$titletext,false,'Small'); $arr[$i]['titletext'] = $titletext; $thumb = $thumbnail["thumb"]; print_thumbnail($thumb, $thumbnail["use_timthumb"], $titletext, $width, $height, ''); ?> <div class="featured-top-shadow"></div> <div class="featured-bottom-shadow"></div> <div class="featured-description"> <div class="feat_desc"> <p class="meta-info"><?php esc_html_e('Posted','henrik'); ?> <?php esc_html_e('by','henrik'); ?> <?php the_author_posts_link(); ?> <?php esc_html_e('on','henrik'); ?> <?php the_time(esc_attr(get_option('henrik_date_format'))) ?></p> <h2 class="featured-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> <p><?php truncate_post(410); ?></p> </div> <a href="<?php the_permalink(); ?>" class="readmore"><?php esc_html_e('Read More', 'henrik'); ?></a> </div> <!-- end .description --> <?php if ( $responsive ) { ?> </li> <!-- end .slide --> <?php } else { ?> </div> <!-- end .slide --> <?php } ?> <?php $ids[] = $post->ID; $i++; endwhile; endif; wp_reset_query(); ?> <?php if ( $responsive ) { ?> </ul> <!-- end .slides --> <?php } else { ?> </div> <!-- end #slides --> <?php } ?> </div> <!-- end #featured --> <div id="controllers" class="clearfix"> <ul> <?php for ($i = 0; $i < $featured_num; $i++) { ?> <li> <div class="controller"> <a href="#"<?php if ( $i == 0 ) echo ' class="active"'; ?>> <?php print_thumbnail( $arr[$i]['thumbnail']['thumb'], $arr[$i]['thumbnail']["use_timthumb"], $arr[$i]['titletext'], $small_width, $small_height ); ?> <span class="overlay"></span> </a> </div> </li> <?php } ?> </ul> <div id="active_item"></div> </div> <!-- end #controllers --> 

Он выбирает настраиваемую категорию и возвращает пользовательское количество сообщений. Проблема в том, что в нем будут отображаться сообщения в том порядке, в котором они были созданы. Я хочу выбрать свой собственный заказ , чтобы я мог выбирать, какие сообщения отображаются в первую очередь и так далее.

Итак, можно ли выбрать, какой заказ отображают возвращенные сообщения? Может быть, ориентируясь на конкретные идентификаторы?

В идеале я хотел бы установить собственный идентификатор (непосредственно в коде) для первого сообщения, а затем отобразить оставшийся дисплей в возвращаемом порядке, как есть. Это возможно?

Если вы решите ответить, пожалуйста, детализируйте пример кода, спасибо за чтение.

Solutions Collecting From Web of "Откорректируйте заказ для возвращенных сообщений"

Чтобы выполнить то, что вы хотите, вам нужно будет заблаговременно получать сообщения. Невозможно указать в SQL произвольный порядок, заданный идентификационным списком.

query_posts () создает другой основной запрос, выкидывая основной запрос. Поскольку вы все равно это делаете, вы можете использовать get_posts (), чтобы вместо этого возвращать список сообщений.

 $posts = get_posts( array( 'post_type' => 'page', 'orderby' => 'menu_order', 'order' => 'ASC', 'post__in' => (array) get_option('henrik_feat_pages'), 'showposts' => (int) $featured_num ) ); 

Затем,

 $posts_by_id = array(); foreach( $posts as $post ) $posts_by_id[$post->ID] = $post; 

Теперь у вас есть массив почтовых объектов, индексированных по идентификатору, и вы можете выполнять итерацию по упорядоченному списку и выбирать записи из этого списка:

 global $post; foreach( (array) get_option( 'henrik_feat_pages' ) as $post_id ) { $post = $posts_by_id[$post_id]; setup_postdata( $post ) // ... Template code as if you were in the loop. } 

Обновить

Цикл выше заменяет основной цикл. Поэтому вместо написания

 <?php if (have_posts()) : while (have_posts()) : the_post(); <?php /** Code in loop **/ ?> <?php endwhile; endif; ?> 

Чтобы начать цикл, мы используем:

 global $post; foreach( (array) get_option( 'henrik_feat_pages' ) as $post_id ) { $post = $posts_by_id[$post_id]; setup_postdata( $post ); /** Code in loop **/ } 

Это эквивалентный код, который использует несколько иной синтаксис. $ post должен быть глобализирован и установлен на правильный пост-объект на каждой итерации, а setup_postdata() заполняет все связанные setup_postdata() с информацией, найденной в $ post.

Этот код предполагает, что опция henrik_feat_pages – это упорядоченный список идентификаторов сообщений.

Обновление 2

Как показать конкретную запись с известным идентификатором сообщения, сначала $first_post_id :

 // Create ordered array of posts to show, with $first_post_id first $posts_to_show = array_merge( (array) $first_post_id, (array) get_option( 'henrik_feat_pages' ) ); // Get the pages whose IDs are in $posts_to_show $posts = get_posts( array( 'post_type' => 'page', 'post__in' => $posts_to_show ) ); // Create ordered post array: $posts_by_id = array(); foreach( $posts as $post ) $posts_by_id[$post->ID] = $post; // Output loop: global $post; foreach( $posts_to_show as $post_id ) { $post = $posts_by_id[$post_id]; setup_postdata( $post ) // ... Template code as if you were in the loop. } 

Обратите внимание, что я упростил запрос в get_posts() чтобы были предоставлены только аргументы post_type и post__in . Нет необходимости указывать порядок, так как сообщения упорядочиваются в коде.