WordPress Popular Postsをカスタマイズ|wpp_custom_html・記事のランキング

WordPressのプラグイン「WordPress Popular Posts」は人気記事一覧(記事のランキング)を簡単に表示することができるプラグイン。

今回は、その「WordPress Popular Posts」で、人気記事一覧を表示する際に、HTMLを変更しカスタマイズして表示する例となります。

WordPress Popular Postsをカスタマイズする例

「WordPress Popular Posts」でHTMLをカスタマイズして表示する今回の例では、次の2つの工程が必要となります。

  • フィルターフックwpp_custom_htmlを使い、出力するHTMLをカスタマイズ
  • wpp_get_mostpopular()でカスタマイズした人気記事一覧のHTMLを表示

以下、それぞれのソースコードの例となります。

出力するHTMLをカスタマイズ|wpp_custom_html

出力するHTMLをカスタマイズするには、「WordPress Popular Posts」のフィルターフックwpp_custom_htmlを使います。

以下、そのフィルターフックwpp_custom_htmlを使ったカスタマイズの例となり、functions.phpに記述します。

function my_wpp_custom_html( $mostpopular, $instance ){ 
	$output = '<h2>人気記事ランキング</h2>';
	$output .= '<ol>';
    foreach( $mostpopular as $popular ){
     	// リンクを取得
    	$output .= '<li><a href="' . get_the_permalink( $popular->id ) . '"><article>';
        // タイトル・アイキャッチ画像・ページビュー数を取得
		$output .= 
			'<p>' . esc_html( $popular->title ) . '</p>' . 
			get_the_post_thumbnail( $popular->id, 'thumbnail' ) . 
			'<p>' . esc_html( $popular->pageviews ) . 'views</p>'; 
        // フィールド名「info-field」のカスタムフィールドの値を取得
        $custom_fields = get_post_meta( $popular->id, 'info-field', true ); 
        if($custom_fields) {
        	$output .= '<div>' . esc_html( $custom_fields ) . '</div>';
        }
        $output .= '</article></a></li>';   
	}
	$output .= '</ol>';   
	return $output;
}
add_filter( 'wpp_custom_html', 'my_wpp_custom_html', 10, 2 );

フィルターフックwpp_custom_htmlのコールバック関数の第1引数($mostpopular)は、人気記事一覧のオブジェクトを返し、第2引数($instance)は、「widget/shortcode/template tag」からのオプション情報を配列として返します。

今回の例では、foreachループを使用して、第1引数($mostpopular)から取得した値のみを使用し、HTMLをカスタマイズしました。取得した値には「タイトル」、「アイキャッチ画像」、「カスタムフィールドの値」等をとなります。

今回は、第2引数($instance)からは、値を取得しませんでしが、第2引数($instance)を使い、人気記事のデータを取得する条件などによってカスタマイズも可能です。詳しくは以下のリンク先を参考にしてみてください。

人気記事を一覧を表示|wpp_get_mostpopular()

上記でカスタマイズした人気記事の一覧を出力して表示するには、プラグインの独自の関数wpp_get_mostpopular()を使用します。

以下がソースコードの例となり、テンプレートファイル内で、人気記事の一覧を表示させたい場所に記述します。

<?php
if ( function_exists( 'wpp_get_mostpopular' )) {
	$arg = array (
    	// 記事を表示する最大件数
		'limit'     => 3, 
        // 集計期間。 daily, weekly, monthly, all のいずれかを指定
		'range'     => 'weekly', 
        // ソート順の対象。 views(閲覧数), comments(コメント数), avg(1日の平均)のいずれかを指定
		'order_by'  => 'views',
        // ポストタイプを指定。post, page, などを指定
		'post_type' => 'post',
	);
	wpp_get_mostpopular( $arg );
}
?>

wpp_get_mostpopular関数では、パラメータに指定した条件の人気記事一覧を出力します。

パラメータは、今回の例で使用した以外にもたくさんあり、WordPress管理画面から、『WordPress Popular Posts』の設定画面で確認できます。

参考サイトなど

コメント投稿またはTwitterで返信

コメントは、以下の項目(*は必須項目)を入力し「コメントを送信」ボタンから送信お願いします。メールアドレスは公開されることはありません。
Twitterで返信する場合はこちらから。

また、コメントは承認制となります。