简体   繁体   English

有没有一种方法可以基于优先级在wordpress中显示帖子?

[英]is there a way to display posts based on priority in the loop in wordpress?

我想基于优先级显示帖子,并且一旦显示优先级,就应该降低优先级,以便在下次重新加载或刷新页面时,其他帖子位于顶部,而已经显示的帖子应该位于底部。

You can order the post in random order. 您可以按随机顺序订购帖子。 It will not display posts in same order after refreshing the page. 刷新页面后,它将不会以相同的顺序显示帖子。 Try this below code: 试试下面的代码:

add_action('pre_get_posts', 'my_pre_get_posts');
function my_pre_get_posts($query) {
if ( $query->is_home() && $query->is_main_query() ) {
    $query->set('orderby', 'rand');
}}

created a meta field 'priority_priority' 创建了一个元字段“ priority_priority”

 <div id="games-container" class="col-md-12">
    <?php 
      $counter = 0;
      $args = array( 'post_type' => 'games', 'posts_per_page' => 10,
             'orderby'    => 'meta_value_num',
             'order'      => 'DES',
             'meta_query' => array(
                         array(
                                'key'     => 'priority_priority'
                            ),
                    ), );
      $loop = new WP_Query( $args );
     while ( $loop->have_posts() ) : $loop->the_post();
     if($counter < 2){           
       ?>
       <a href=<?php echo get_post_permalink()?>>
        <div id="mypost" class="col-md-5" style="min-height:400px;">
        <?php the_post_thumbnail('large');
         ?>
        </div>
        </a>
        <div class="col-md-1"></div>
    <?php
    $counter++;
     } 
    else {?>
    <a href=<?php echo get_post_permalink()?>>
     <div id="mypost" class="col-md-3">
         <!-- post display -->
         <?php the_post_thumbnail('medium'); ?>
        </div>
    </a>
        <div class="col-md-1"></div>
       <?php 
       }
     endwhile; 
     wp_reset_postdata();
     ?>
     </div>

then used the following code in post template page 然后在帖子模板页面中使用以下代码

<?php

     $post_id = get_the_ID();
       $priority = get_post_meta($post_id,'priority_priority',true); 
       if($priority>1)
       {     
          if(!isset($_COOKIE['visitor'.$post_id]))
          {        
               $bool=setcookie('visitor'.$post_id,$post_id,DAY_IN_SECONDS,'/');
               if(count($_COOKIE) > 0)
               {
                    $priority = $priority-1;
                    update_post_meta($post_id,'priority_priority',$priority);
               }
          }

       }
   get_header();
?>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM