主页/WordPress笔记/博客文章/综合文章/如何在WordPress中按查看次数显示热门文章(2种方法)

如何在WordPress中按查看次数显示热门文章(2种方法)

Bug编译狮

Bug编译狮

在WordPress中,按照查看次数显示热门文章可以通过两种主要的方法实现:使用自定义字段和使用插件。这两种方法各有优劣,适用于不同的场景。

方法一:使用自定义字段

步骤:

  1. 创建自定义字段

    • 登录到WordPress后台。
    • 进入设置 > 后台管理页面。
    • 点击添加新字段按钮。
    • 选择文本类型,然后输入字段名,例如view_count,并点击保存。
  2. 更新文章视图数

    • 在编辑文章时,在页面属性发布信息中增加一个<meta>标签来记录每篇文章的视图数。
      <meta name="view_count" content="<?php echo get_post_meta($post->ID, 'view_count', true); ?>">
  3. 显示热门文章

    • 使用以下代码片段在模板文件中显示最新的文章及其视图数。
      
      <?php 
      $posts = new WP_Query( array(
      'post_type' => 'post',
      'posts_per_page' => 5,
      'meta_key' => 'view_count',
      'orderby' => 'meta_value_num',
      'order' => 'DESC'
      ) );

    while ( $posts->have_posts() ) : $posts->the_post(); ?>

    ID, ‘view_count’, true) . ” views”; ?>

    <?php endwhile; ?>

  4. 样式调整

    • 根据需要修改CSS以美化显示。

方法二:使用插件

插件推荐:

  • WP Popular Posts
  • WP Post Views Count

设置步骤:

  1. 安装插件

    • 访问WordPress插件目录。
    • 搜索并安装上述两个插件。
  2. 配置插件

    • 对于WP Popular Posts,只需简单地启用它即可。
    • 对于WP Post Views Count,你需要根据界面提示安装必要的数据库表结构。
  3. 查看热门文章

    • 打开网站,你会看到一个列表显示最受欢迎的文章。
    • 文章下方会显示其查看次数。

效果对比:

  • 自定义字段的优点在于灵活性高,可以根据个人需求定制字段名称和展示方式。
  • 插件的优点在于功能丰富,易于上手,但可能有额外的配置和依赖项。

通过以上方法,你可以有效地在WordPress站点上显示热门文章,满足不同用户的需求。

黑板前的Bug语法讲师

黑板前的Bug语法讲师

如何在WordPress中按查看次数显示热门文章

1. 使用meta_query过滤器

方法一: 通过设置meta_query来筛选出被查看次数最多的文章。

function get_most_viewed_posts() {
    $args = array(
        'posts_per_page' => -1,
        'post_status' => 'publish',
        'meta_key' => '_wp_http_referer', // 这里是你需要检查的引用参数名
        'orderby' => 'meta_value_num',
        'order' => 'DESC'
    );

    $query = new WP_Query($args);
    if ($query->have_posts()) {
        while ($query->have_posts()) : $query->the_post();
            echo '<a href="' . esc_url(get_permalink()) . '">' . get_the_title() . '</a>';
            echo '<br>' . get_post_meta(get_the_ID(), '_wp_http_referer', true) . '<br><br>';
        endwhile;
    }
}

add_action('pre_get_posts', 'get_most_viewed_posts');

方法二: 使用is_{$category}函数来获取特定分类中的文章并使用meta_query进行过滤。

function get_most_viewed_posts_by_category() {
    global $wpdb;

    $categories = get_categories(array(
        'show_count' => false,
        'orderby' => 'count',
        'order' => 'ASC'
    ));

    foreach ($categories as $category) {
        $category_id = $category->term_id;
        $sql = "SELECT * FROM {$wpdb->posts} WHERE post_type='post' AND category_id=$category_id ORDER BY meta_value_num DESC LIMIT 5";

        $results = $wpdb->get_results($sql, ARRAY_A);

        foreach ($results as $result) {
            echo '<a href="' . get_permalink($result['ID']) . '">' . get_the_title($result['ID']) . '</a>';
            echo '<br>' . get_post_meta($result['ID'], '_wp_http_referer', true) . '<br><br>';
        }
    }
}

add_action('init', 'get_most_viewed_posts_by_category');

这两个方法都返回了最近访问最多的文章列表,但根据需求选择合适的方法即可。第一个方法简单直观,适用于大多数情况;第二个方法更精确,适合有特殊需求的情况。