WordPressプラグイン・Jetpackウィジェットの人気記事ランキングで特定の記事を非表示にする

Jetpackといえば、WordPressの統計ページでいつもお世話になっています。

Jetpackプラグインを導入すると使える「人気の投稿とページ」ウィジェットは、統計データからよく読まれているページを取得し表示できます。
人気記事プラグインと言えばWordPress Popular Postsが有名ですが、Jetpackの人気記事ウィジェットも設定がシンプルで使いやすいので気に入っています。

最近、意外な記事がよく読まれていて、人気記事リストに上位表示されているのですが、そもそもその記事の存在を訪問してくださった方に特にアピールする必要をあまり感じません。

ブログって不思議なことに、メインテーマではない記事がなぜか突出して読まれたりしませんか?
ブログカスタマイズの記事がメインなのに、何気なく投稿した料理レシピが圧倒的に読まれていたり。

人気リストから特定の記事だけ非表示にする方法がないか探してみたところ、日本語での情報はなかったので、まとめておきます。

人気記事リストを設置する

外観→ウィジェット→「人気の投稿とページ(Jetpack)」

ウィジェットを好きな場所に設置します。

jetpack プラグイン

ここではリストの上限数と表示形式(テキストリスト・画像リスト・画像グリッド)を選択します。細かいカスタマイズはphpをさわることになります。

特定の記事を人気記事リストから除外する

functions.phpに追記する方法ですので、かならずバックアップを取ってから行ってください。

○○の部分に投稿IDを入れれば、人気記事リストに出てこなくなります。

/*-------------------------------------------*/
/* Jetpack人気記事から特定記事を除外する
/*-------------------------------------------*/
function jeherve_remove_post_top_posts( $posts, $post_ids, $count ) {
foreach ( $posts as $k => $post ) {
// 表示したくない投稿のIDを下の〇〇に入れて指定
if ( '〇〇' == $post['post_id'] ) {
unset( $posts[$k] );
}
}
return $posts;
}
add_filter( 'jetpack_widget_get_top_posts', 'jeherve_remove_post_top_posts', 10, 3 );


WordPress・投稿IDとカテゴリーIDの調べ方

投稿記事のIDは、各記事の編集画面のURLを見るとわかります。
.../post.php?post=1590&action=edit

カテゴリーも、各カテゴリーの編集画面を確認しましょう。

.../taxonomy=category&tag_ID=7

この数字部分がIDですね。

特定の記事を関連記事リストから除外する

ちなみに、Jetpackには関連記事を表示させる機能もついています。

こちらはウィジェットではなく、Jetpackの設定画面で機能をオンにできます。

Jetpack→設定→Traffic

jetpack 関連記事

投稿ID1037と1038の2つの記事を関連記事から除外したい場合は、functions.phpにこのように追記しましょう。
以下のコードはJetpack公式サイトで紹介されています。

function jetpackme_exclude_related_post( $exclude_post_ids, $post_id ) {
// $post_id is the post we are currently getting related posts for
$exclude_post_ids[] = 1037; // Exclude post_id 1037
$exclude_post_ids[] = 1038; // Also exclude post_id 1038
return $exclude_post_ids;
}
add_filter( 'jetpack_relatedposts_filter_exclude_post_ids', 'jetpackme_exclude_related_post', 20, 2 );

メインテーマとははずれた記事を読んでもらえるのは嬉しいけれど、できれば人気記事には表示されないでほしいというニーズは意外にあるのではと思っているのですが、どうでしょうか。
お役に立てれば幸いです。