[英]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.