Intereting Posts
Как редактировать мета-описание Изменить URL-адрес категории продуктов, чтобы использовать slug, а не родительские категории в WooCommerce wordpress + кириллические символы с SQL Server 2008 r2 Потеря пользовательской постоянной ссылки при преобразовании в пользовательский тип сообщения Проверка проверки почты, если назначен дочерний термин Два расположения столбцов с использованием Bootstrap get_page_by_title () не получает сообщение Можете ли вы, чтобы список пользователей был предварительно отсортирован по определенному столбцу? отображать короткие коды за пределами the_content Как вставить скрипты в правильный путь в плагине? Как я могу создать виджет области виджета, используя встроенные функции WordPress? Автоматически исключать категории из метабокса на основе заголовка расширенные настраиваемые поля update_field для типа поля: таксономия Вытягивать сообщения из другой установки WordPress на одном сервере Изменить URL-адрес поиска

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

Я написал аккуратный отзывчивый слайдер для моих опубликованных статей 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 . Нет необходимости указывать порядок, так как сообщения упорядочиваются в коде.