Wil*_*iam 6 php wordpress customization filtering
我想使用 WP_Query 显示 WordPress 中查看次数最多的 10 个帖子,但我的代码没有显示任何内容。
代码:
$q_mostViewed = [
'meta_key' => 'post_views_count',
'orderby' => 'meta_value_num',
'order' => 'DESC',
'posts_per_page' => '10'
];
Run Code Online (Sandbox Code Playgroud)
请你帮助我好吗?
完整代码:
<!-- Most Viewed -->
<div class="home-post-wrapper col-sm-12 nopadding">
<?php
$q_mostViewed = [
'meta_key' => 'post_views_count',
'orderby' => 'meta_value_num',
'order' => 'DESC',
'posts_per_page' => '10'
];
$mostViewed = new WP_Query($q_mostViewed);
if ($mostViewed->have_posts()) :
while ($mostViewed->have_posts()) :
$mostViewed->the_post(); ?>
// Do things here
<?php endwhile;
endif; ?>
</div>
Run Code Online (Sandbox Code Playgroud)
打开激活主题的functions.php文件并添加以下代码。
setPostViews() 函数使用 post_views_count 元键添加或更新帖子元。
/*
* Set post views count using post meta
*/
function setPostViews($postID) {
$countKey = 'post_views_count';
$count = get_post_meta($postID, $countKey, true);
if($count==''){
$count = 0;
delete_post_meta($postID, $countKey);
add_post_meta($postID, $countKey, '0');
}else{
$count++;
update_post_meta($postID, $countKey, $count);
}
}
Run Code Online (Sandbox Code Playgroud)
single.php 文件
从激活的主题目录中打开 single.php 文件,并将 setPostViews() 函数放入循环内。
setPostViews(get_the_ID());
Run Code Online (Sandbox Code Playgroud)
显示浏览次数最多的帖子
以下查询将根据 post_views_count 元键值获取帖子。将以下代码放置在侧边栏或您想要显示最热门帖子列表的位置。
<?php
query_posts('meta_key=post_views_count&orderby=meta_value_num&order=DESC');
if (have_posts()) : while (have_posts()) : the_post();
?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php
endwhile; endif;
wp_reset_query();
?>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11450 次 |
最近记录: |