2 in an array using my code

I use the slider for my published Wordpress articles. It selects a custom category and returns a given number of messages.

How to make the first post that appears as custom? Is it possible to add the identifier of a specific record directly in the slider code so that the first message appears in it , followed by other ones returned by the original request?

For example, on the page, the first message will be ID 6 (manually recorded in the source code), and the second, third and fourth entries will be those returned by the request in the source code. How is this possible?

Someone suggested that it is very simple, all I need to do is make another request before this to get a custom post, then close the request, open it again to get the next request (i.e. in the slider code) and finally pull the elements into an array together. My very limited knowledge of PHP limits me to an understanding of how to do this.

I know how to get a custom post, this code works:

<?php $post_id = 6; $queried_post = get_post($post_id); ?> 

However, I do not know how to add this and the original request to the array. You?

Here is the complete slider code:

 <?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 --> 

If you decide to answer, please detail the sample code, thanks.

+4
source share
1 answer

Not sure about my solution, because I don't have a WP host to check it out, but something like this:

line 39 : replace this line with this code below

  <?php if (have_posts()) : while (have_posts()) : global $post; if (!$first_time) { $post_id = 6; $post = get_post($post_id); $first_time = 1; } else the_post(); ?> 

The idea of ​​the solution is simple:

  Check for first-time loop :firt loop - simply get needed post with "get_post()" function :other loops - get posts from original query by "the_post()" function. 
+3
source

Source: https://habr.com/ru/post/1432477/


All Articles