人気の投稿とページ(Jetpack) ウィジェットのアクセス数取得期間を変える

jetpack-logo

人気の(アクセスの多い)投稿を表示するJetpackのウィジェットをなんとなくサイドバーに置いてみたけど、アクセス数の取得期間がデフォルトの24〜48時間から変更できず、ウチのような泡沫サイトだともうちょい長くしたいのでソースを書き換えてみた。やり方書いてるページが見つからなかったのでメモ。Jetpackのバージョンは4.4.2。

(2016/2/11 functions.phpにコードを追加する場合を追記)

変更手順

書き換えるファイルは/wp-content/plugins/jetpack/modules/widgets/top-posts.php

まずアクセス数取得期間を増やす。変更箇所はtop-posts.php 354行あたりで以下のようになっているところ。

$days = (int) apply_filters( 'jetpack_top_posts_days', 2 );
	if ( $days < 1 ) {
		$days = 2;
	}
	if ( $days > 10 ) {
		$days = 10;
	}

例えば30日にする場合は次のように変更。

$days = (int) apply_filters( 'jetpack_top_posts_days', 30 );
	if ( $days < 1 ) {
		$days = 2;
	}
	if ( $days > 30 ) {
		$days = 30;
	}

さらに、固定ページを除外し投稿のみ表示したいので次のように変更する。
(ウィジェットの設定でも投稿のみ表示にできるが、これは投稿と固定ページを合わせて取得してから固定ページを除外するので、例えば固定ページが上位10件中2件あった場合、投稿が8件しか表示されなくなってしまう。)

410行あたりの以下の部分を見つけて、

// hide private and password protected posts
if ( 'publish' != $post->post_status || !empty( $post->post_password ) || empty( $post->ID ))

次のように固定ページも除外する記述を追加。(元記事: Ramsukul.comShow only Posts in Jetpack Top Posts & Pages Widget – Ramsukul.com

// hide private and password protected posts
if ( 'publish' != $post->post_status || !empty( $post->post_password ) || empty( $post->ID ) || get_post_type($post_id)=='page' )

以上。なおソースを直接書き換えているので、当然top-posts.phpがアップデートされると元に戻ってしまうけどまぁしばらくこれで様子見。functions.phpに書いたりするほうがスマートだと思うけどよくわかってないのでやらない。→わかったので以下に追記

functions.phpにコードを追加する場合

公式フォーラムに書いてありました。以下のコードをテーマのfunctions.phpに追加するだけでよいようです。こちらのやり方だと、top-posts.phpがアップデートされてもいちいちコードを書き直したりしなくてよくなります。

function jeherve_top_posts_timeframe() {
    return '30';
}
add_filter( 'jetpack_top_posts_days', 'jeherve_top_posts_timeframe' );

2行目の数字が取得期間(日)なので、好きな数字に変更すればよいです。注意点としては、あんまり期間を長くしすぎるとデータを返すのに時間がかかるかもよ的なことがフォーラムに書いてあります。

プラグインを使う場合

下記のプラグインも少し試してみたけど、プラグイン入れるほどのことでもなかろうと思ってやめた。

WordPress Popular Posts

人気投稿表示ではたぶん一番有名なプラグイン。アクセス数取得期間も含めていろいろ設定できてよさげだが、アクセス数のカウントを独自に取っているようなので、あまりそういうデータを増やしたくないなと思って使わないことに(JetpackのウィジェットはWordpressの統計から取ってきている)。

Popular Posts Tabbed Widget for Jetpack

人気の投稿とコメントと最新記事をタブ切替で表示可能。こちらはJetpackのウィジェットと同じくWordpressの統計からアクセス数を取得している。がタブにするとなんか仰々しいのでやめ。

%d人のブロガーが「いいね」をつけました。