WordPress调用热门文章的方法大全
在WordPress中调用热门文章是一个非常常见的需求,可以根据不同的“热门”标准(如阅读量、评论数、点赞等)来实现。
下面为您整理一份从简单到高级的“WordPress 调用热门文章方法大全”。
核心思路
实现热门文章调用主要有两种途径:
- 使用插件:最简单快捷,功能丰富,适合非技术背景用户。
- 添加代码:更轻量、更灵活,性能更好,适合有一定技术基础、希望减少插件依赖的用户。
方法一:使用插件(推荐新手和非开发者)
插件方式通常提供小工具(Widget)、短代码(Shortcode)和PHP函数等多种调用方式,非常方便。
1. WordPress Popular Posts
这是最著名、最专业的热门文章插件。
- 评判标准: primarily 基于页面浏览量(PV),可按总浏览量、近期浏览量(如最近7天)等筛选。
- 主要功能:
- 高度可定制:可设置时间范围、文章类型、分类等。
- 多种显示样式:缩略图、标题、摘要、浏览量等。
- 数据缓存:有效降低数据库查询压力,提升性能。
- 提供小工具、短代码和PHP函数。
- 使用方法:
- 安装并激活插件后,进入
外观 > 小工具,将 “WordPress Popular Posts” 小工具拖到侧边栏或页脚等区域进行配置。 - 使用短代码
[wpp]在文章或页面中插入。
- 安装并激活插件后,进入
2. Jetpack
如果你已经在使用Jetpack插件,它自带了一个“热门文章”功能。
- 评判标准: 基于Jetpack的WordPress.com站点统计数据进行排名。
- 主要功能:
- 显示最近24小时、7天、30天或全部时间的热门文章。
- 界面简洁,与WordPress.com数据同步。
- 使用方法:
- 确保Jetpack已连接且“站点统计”功能开启。
- 进入
外观 > 小工具,使用 “Top Posts & Pages” 小工具。
3. Post Views Counter
如果你只需要精确统计和显示文章浏览量,并基于此调用热门文章,这个插件是轻量级的选择。
- 评判标准: 纯基于文章浏览量。
- 主要功能:
- 准确统计文章浏览量(可排除机器人访问)。
- 提供小工具和短代码来显示热门文章列表。
- 使用方法: 类似以上插件,通过小工具或短代码调用。
方法二:手动添加代码(推荐开发者和追求性能的用户)
通过将代码添加到主题的 functions.php文件或使用Code Snippets插件来实现。这种方式不依赖额外插件,性能更优。
1. 基于文章浏览量(Post Views)查询
这是最常见的方式。前提是你要有记录文章浏览量的功能。
第一步:确保文章浏览量被记录
首先,你需要一段代码来记录每篇文章的浏览量。将以下代码添加到主题的 functions.php中:
// 函数:设置文章浏览量
function set_post_views($postID) {
$count_key = 'post_views_count';
$count = get_post_meta($postID, $count_key, true);
if ($count == '') {
$count = 0;
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '0');
} else {
$count++;
update_post_meta($postID, $count_key, $count);
}
}
// 函数:获取文章浏览量
function get_post_views($postID) {
$count_key = 'post_views_count';
$count = get_post_meta($postID, $count_key, true);
if ($count == '') {
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '0');
return "0";
}
return $count;
}
// 在单篇文章页面记录浏览量
// 注意:移除了重复的 remove_action 行
function track_post_views($post_id) {
if (!is_single()) return;
if (empty($post_id)) {
global $post;
$post_id = $post->ID;
}
set_post_views($post_id);
}
add_action('wp_head', 'track_post_views');
第二步:查询并显示热门文章
然后,在你想要显示热门文章的地方(如侧边栏的 sidebar.php或通过短代码),使用 WP_Query进行查询。
// 查询热门文章的PHP代码示例
$popular_posts_args = array(
'post_type' => 'post', // 文章类型,可以是 'page' 或其他自定义类型
'posts_per_page' => 5, // 显示数量
'meta_key' => 'post_views_count', // 基于我们上面设置的元字段
'orderby' => 'meta_value_num', // 按数字值排序
'order' => 'DESC', // 降序排列,浏览量从高到低
'ignore_sticky_posts' => 1, // 忽略置顶文章
);
$popular_posts = new WP_Query($popular_posts_args);
if ($popular_posts->have_posts()) {
echo '<ul class="popular-posts-list">';
while ($popular_posts->have_posts()) {
$popular_posts->the_post();
echo '<li>';
echo '<a href="' . get_permalink() . '">' . get_the_title() . '</a>';
// 可选:显示浏览量
// echo ' (' . get_post_views(get_the_ID()) . ' 次阅读)';
echo '</li>';
}
echo '</ul>';
wp_reset_postdata(); // 重置查询数据
}
2. 基于评论数量查询
如果“热门”的标准是评论互动多少,可以直接利用WordPress自带的评论计数。
$popular_posts_args = array(
'post_type' => 'post',
'posts_per_page' => 5,
'orderby' => 'comment_count', // 直接按评论数排序
'order' => 'DESC',
'ignore_sticky_posts' => 1,
);
// 后面的循环代码与上面相同
3. 创建短代码方便调用
为了在任何文章或页面中都能方便地插入热门文章列表,可以创建一个短代码。
将以下代码添加到 functions.php:
// 创建热门文章短代码
function popular_posts_shortcode($atts) {
$atts = shortcode_atts(array(
'count' => '5', // 默认显示5篇
'time_range' => 'all' // 默认全部时间,这里需要更复杂的查询来实现时间范围,此处为简单示例
), $atts);
$args = array(
'post_type' => 'post',
'posts_per_page' => intval($atts['count']),
'meta_key' => 'post_views_count',
'orderby' => 'meta_value_num',
'order' => 'DESC',
'ignore_sticky_posts' => 1,
);
$output = '';
$popular_posts = new WP_Query($args);
if ($popular_posts->have_posts()) {
$output .= '<ul class="popular-posts-shortcode">';
while ($popular_posts->have_posts()) {
$popular_posts->the_post();
$output .= '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>';
}
$output .= '</ul>';
wp_reset_postdata();
} else {
$output .= '<p>暂无热门文章。</p>';
}
return $output;
}
add_shortcode('popular_posts', 'popular_posts_shortcode');
使用短代码:
在文章或页面的编辑器中,直接输入 [popular_posts count="5"]即可显示5篇热门文章。
性能优化建议
- 使用Transients API进行缓存:对于热门文章这类不需要实时更新的数据,强烈建议使用Transients将其结果缓存一段时间(如12小时),可以极大减少数据库查询。
- 插件选择:如果使用插件,如 “WordPress Popular Posts” 自带缓存机制。
总结
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| WordPress Popular Posts | 功能强大,定制性高,有缓存 | 增加一个插件 | 大多数用户,特别是非技术人员 |
| 手动添加代码 | 轻量,高性能,完全控制 | 需要技术基础,不易修改参数 | 开发者,追求网站速度和精简插件的用户 |
| 基于评论数 | 简单,无需记录浏览量 | “热门”标准单一,可能不准确 | 评论活跃的博客 |
如何选择?
根据你的技术能力和具体需求,选择最适合的方法即可。对于初学者,从 插件开始是最好的选择。如果选择手动添加代码,建议先备份,以防出现不可逆转的问题发生。