Wordpressで人気記事を表示する方法

Wordpressで人気記事を表示する方法

WordPressで人気記事を表示する方法はいくつかあります。
プラグインを使う方法が最も一般的で簡単ですが、テーマやカスタムコードを使用して実装することも可能です。
以下に、いくつかの方法を紹介します。

1. プラグインを使用する方法

1. プラグインのインストール

  • WordPressダッシュボードにログインします。
  • 「プラグイン」 > 「新規追加」をクリックします。
  • 「WordPress Popular Posts」と検索し、プラグインをインストールして有効化します。

WordPress Popular Postswordpress.org

2. ウィジェットの設定

  • 「外観」 > 「ウィジェット」に移動します。
  • 「WordPress Popular Posts」ウィジェットをドラッグしてサイドバーやフッターなどの適切なウィジェットエリアに配置します。
  • ウィジェットの設定を調整し、「保存」をクリックします。
b. Jetpack プラグイン

1. プラグインのインストール

  • 「Jetpack」をインストールして有効化します。

2. 設定のカスタマイズ

  • 「Jetpack」 > 「設定」 > 「トラフィック」タブに移動します。
  • 「人気の投稿」セクションを探し、設定を有効にします。
  • 「外観」 > 「ウィジェット」に移動し、「Jetpack Popular Posts」ウィジェットを追加して設定します。

Jetpackja.wordpress.org

2. テーマでカスタムコードを使用する方法

a. functions.php にコードを追加

以下のコードをテーマの 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);
    }
}
remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);

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');

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 View";
    }
    return $count.' Views';
}
b. 人気記事を表示するテンプレートタグを作成

以下のコードを使用して、人気記事を表示するテンプレートタグを作成します。

function display_popular_posts() {
    $args = array(
        'posts_per_page' => 5,
        'meta_key' => 'post_views_count',
        'orderby' => 'meta_value_num',
        'order' => 'DESC'
    );
    $popular_posts = new WP_Query($args);
    if ($popular_posts->have_posts()) {
        echo '<ul>';
        while ($popular_posts->have_posts()) {
            $popular_posts->the_post();
            echo '<li><a href="' . get_the_permalink() . '">' . get_the_title() . '</a> (' . get_post_views(get_the_ID()) . ')</li>';
        }
        echo '</ul>';
    }
    wp_reset_postdata();
}

このタグを適切なテンプレートファイル(例:sidebar.phpやfooter.php)に追加して、人気記事を表示します。

get_post_metaメソッドの処理内容

get_post_metaメソッドは、WordPressの関数で、特定の投稿に関連付けられたカスタムフィールド(メタデータ)の値を取得します。
この関数を使用すると、投稿ごとに追加された任意のデータ(例えば、投稿ビューのカウント、カスタム設定、追加情報など)を取得できます。

get_post_metaの基本的な使い方
$value = get_post_meta($post_id, $meta_key, $single);

- $post_id:
メタデータを取得したい投稿のID。
- $meta_key:
取得したいメタデータのキー(カスタムフィールドの名前)。
- $single:
メタデータが単一の値かどうかを指定するブール値。
trueの場合は単一の値を返し、falseの場合は配列を返します。

3. 外部ツールを使用する方法

Google Analyticsなどの外部ツールを使用して人気記事を追跡し、そのデータを基にカスタムウィジェットを作成する方法もあります。
ただし、これにはデータのインポートと表示のための追加のカスタムコーディングが必要です。

これらの方法を試して、自分のサイトに最適な方法を見つけてください。