こんにちは、にゃこです。
Cocoonをご利用の場合、人気記事の 表示は簡単にできることは以下記事でご紹介させていただきました。
Cocoonを使うと、ショートコードを使うだけで、
人気記事一覧を任意の場所で表示させることができました。
今回は、私が実装した、カスタム投稿も含めて人気記事一覧を表示する方法をご紹介します。
実装方法例
いろんな実装方法があります。
プラグインを使う。
WordPress Popular Postsや、
Top 10 – Popular posts plugin for WordPressなどがあります。
できる限りプラグインを使わずに実装したいと思っているので、
人気記事一覧を表示するための専用プラグインは試しませんでした。
Jetpackと既存のウィジェットを使う
Jetpackの設定と既存のウィジェットを使って表示したり、
Jetpackと既存のウィジェットを使って、ショートコードで記事の任意の場所に埋め込む方法です。
既存のウィジェットを使うことで、実装はできました。
ただ、表示させたい場所に入れられるウィジェットはデフォルトでは存在しませんでした。
Jetpackのショートコードを使うことで、記事の任意の場所に入れられるとのことですが、私の理解不足&修行不足で、残念ながらうまく行かず、何も表示されませんでした…。
すぐ諦めて他の方法にチャレンジしてしまいましたが、またチャレンジして、方法がわかったら、更新したいと思います。
Jetpackと自作のウィジェットを使う
Jetpackの設定と、
プラグインなしで自作のウィジェットを作成することで、既存のウィジェットでは表示できない任意の場所に埋め込む方法です。
〈自作のウィジェット作成方法〉
自作のウィジェットは、作れたのですが、
Jetpackのショートコードではうまく表示されませんでした…。
こちらもまたチャレンジして、方法がわかったら、更新したいと思います。
当サイトでの実装方法
ここからは、私が実装した方法をご紹介していきたいと思います。
実装方法前提
①まず、既存のウィジェットを使って表示した際「Jetpack」は問題なく使えることがわかったので、これはそのまま使うことにしました。
②「Jetpack」の人気記事一覧を表示させるには、ウィジェットを使う必要があります。
実装方法概要
■ランキング情報
プラグイン「Jetpack」の情報を使います。
■表示位置の設定
ウィジェットを作成し、ランキング情報を入れます。
そのウィジェットを呼び出すショートコードを、表示をさせたい場所に埋め込みます。
プラグイン「amr shortcode any widget」を使います。
実装手順
ランキング情報の取得
Jetpackを導入すると、「人気の投稿とページ」というウィジェットがダッシュボードに表示されます。
この情報を使って、人気記事一覧を作成します。
Jetpackの設定手順
①管理画面からJetpackを開く。
②画面右上にある「設定」をクリックする。
③「執筆」をクリックする。
④下部のウィジェット欄の
「購読フォームや Twitter ストリームなどの追加ウィジェットがサイトで使用可能に」を有効にする。
⑤管理画面から「外観」>「ウィジェット」を開く。
⑥ウィジェットの利用できるウィジェット内にJetpackのウィジェットがいくつか表示されており、
その中に「人気の投稿とページ(Jetpack)」が追加される。
プラグイン「amr shortcode any widget」の導入
「amr shortcode any widget」のインストール&有効化手順
①管理画面からプラグインを開く。
②「新規追加」ボタンをクリックする。
③プラグインの検索欄に「amr shortcode any widget」と書き、Enterキーを押す。
④「amr shortcode any widget」の「今すぐインストール」ボタンをクリックする。
⑤インストール完了後表示される「有効化」ボタンをクリックする。
⑥管理画面から「外観」>「ウィジェット」を開く。
⑦ウィジェットの表示位置の欄に「Widgets for Shortcodes」が追加される。
ウィジェットの設定
「人気の投稿とページ(Jetpack)」のウィジェットを、「Widgets for Shortcodes」に埋め込みます。
ウィジェットの設定手順
①管理画面から「外観」>「ウィジェット」を開く。
②ウィジェットの利用できるウィジェット内の「人気の投稿とページ(Jetpack)」の▼をクリックする。
③ウィジェットを追加する位置として「Widgets for Shortcodes」を選択し、
「ウィジェットを追加」ボタンをクリックする。
④ウィジェットの表示内容、表示方法を設定し、「保存」ボタンをクリックする。
※⑦は保存後、設定可能になる。
項目 | 設定内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
①タイトル | ウィジェットの上部に表示するタイトル | ||||||||
②表示する投稿の上限数 | 表示する記事数(1~10まで指定可能) | ||||||||
③表示するページの種類 | ウィジェットに表示させたい記事のチェックをONにする。 | ||||||||
④表示形式 | 表示させる方法を選択する。
|
||||||||
⑤表示設定 | ウィジェットを表示させるページの調整をしたい場合にクリックする。 | ||||||||
⑥ウィジェットの表示 | ウィジェットの表示対象を指定する。
|
||||||||
⑦チェック・入力したページで表示/非表示 | ⑥設定内容に合わせ、カテゴリーやページ、記事のID等で指定する。 |
⑤①~⑥の設定保存後、表示/非表示にするカテゴリーやページ、記事IDを指定し、「保存」ボタンをクリックする。
⑥「To use as shortcode with id:」後ろに表示されたショートコードをコピーする。
記事の編集
人気記事一覧を表示させたい記事にコピーしたショートコードを埋め込みます。
記事の編集手順
①人気記事一覧を表示させたい記事の編集画面を開く。
②コピーしたショートコードを表示させたい任意の位置に入力する。
[do_widget id=<ウィジェットID>]
上記では以下のように表示されます。 (これからご紹介するカスタマイズは反映されています)
当サイトでのカスタマイズ方法
ここからは、私が行ったカスタマイズの方法をご紹介していきます。
ウィジェットのタイトル非表示
ウィジェットデフォルトのタイトルは、左寄せのテキスト、見出し2で表示されます。
既にほかで利用している表記方法を利用するため、タイトルは非表示にしました。
この場合、title=falseをショートコード内に追記します。
[do_widget title=false id=<ウィジェットID>]
上記では以下のように、先ほどは表示されていた「人気記事一覧」の文言が表示されません。
(これからご紹介するカスタマイズは反映されています)
サムネイル画像変更
画像リスト、または画像グリッドを選択した場合、サムネイル画像が表示されます。
デフォルトでは、サムネイル画像は40×40の正方形で、小さいです。
サイズを変更したいと思います。
※長方形に変更する方法は少し探した限りでは見つかっていません…。
変更箇所
以下2つのファイルを編集する必要があります。
- functions.php
- CSS
functions.phpを編集するため、事前にバックアップを取りましょう。
functions.phpの編集
以下手順で編集します。
functions.php編集手順
①管理画面から「外観」>「テーマエディター」を開く。
②「編集するテーマを選択」箇所が現在利用中のテーマであることを確認し、
「テーマのための関数 (functions.php)」をクリックする。
③以下コードを追記する。
※サイズの単位は「px」です。pxを記入する必要はありません。
// 引数に指定したイメージのサイズを変更する関数
function jeherve_custom_thumb_size( $get_image_options ) {
// サイズを指定して変更
$get_image_options['avatar_size'] = <任意のサイズを数字で記入>;
// 変更した結果を返す
return $get_image_options;
}
// Jetpackのウィジェットのサムネイルサイズを変更するフックが呼び出されたときに、当関数を呼び出す。
add_filter( 'jetpack_top_posts_widget_image_options', 'jeherve_custom_thumb_size' );
④「ファイルを更新」ボタンをクリックする。
CSSの編集
以下手順で編集します。
CSS編集手順
①管理画面から「外観」>「テーマエディター」を開く。
②「編集するテーマを選択」箇所が現在利用中のテーマであることを確認し、
「スタイルシート (style.css)」をクリックする。
③以下コードを追記する。
/* ランキング表示 */
.widgets-list-layout .widgets-list-layout-blavatar {
max-width: <任意のサイズを数字で記入>px!important;
width: 100%!important;
margin: 2px 8px 2px 0;
padding: 3px 1px 3px 0;
}
④「ファイルを更新」ボタンをクリックする。
投稿日表示設定
デフォルトでは、各記事の投稿日は表示されません。
表示する方法は以下の通りです。
投稿日表示手順
①管理画面から「外観」>「テーマエディター」を開く。
②「編集するテーマを選択」箇所が現在利用中のテーマであることを確認し、
「テーマのための関数 (functions.php)」をクリックする。
③以下コードを追記する。 ※「〈〉」は全角で書いてありますので、半角に変えてください。
// 表示する記事のIDを引数として設定 function jetpackme_add_date_top_posts( $post_id ) { $post_date = get_post_time( // WordPressの日付設定のフォーマット情報を取得し、設定 get_option( 'date_format' ), // グリニッジ標準時で日付設定 true, // 投稿記事のIDを設定 $post_id, // 日付の文字列の翻訳 true ); // 右寄せで時間を表示するHTMLコードを出力。 printf( '<div class="top_posts_date" style="text-align:right;">%s</div>', $post_date ); } add_action( 'jetpack_widget_top_posts_after_post', 'jetpackme_add_date_top_posts' );
④「ファイルを更新」ボタンをクリックする。
下記のように日付が表示されます。
詳細はJetpackのブログに掲載されていますので、下記をご確認ください。
投稿日文字サイズ変更
投稿日の文字のサイズを変えたいと思います。
変更する方法は以下の通りです。
投稿日文字サイズ変更手順
①管理画面から「外観」>「テーマエディター」を開く。
②「編集するテーマを選択」箇所が現在利用中のテーマであることを確認し、
「スタイルシート (style.css)」をクリックする。
③以下コードを追記する。
/* 投稿日の日付サイズ */ .top_posts_date { font-size: 0.6em; /* デフォルトの文字サイズに対する割合等で設定 */ }
④「ファイルを更新」ボタンをクリックする。
投稿日前のアイコン表示設定
表示設定した投稿日の前にを表示したいと思います。
投稿日表示手順
①管理画面から「外観」>「テーマエディター」を開く。
②「編集するテーマを選択」箇所が現在利用中のテーマであることを確認し、
「スタイルシート (style.css)」をクリックする。
③以下コードを追記する。
/*人気記事の投稿日のアイコン表示*/ .top_posts_date::before{ font-family: "FontAwesome"; /*FontAwesomeのバージョンによって書き方が異なります。*/ content: "\f017"; /*fa-clockアイコン*/ padding-right: 4px; /*右余白*/ font-weight: 400; /*アイコンの太さ*/ }
④「ファイルを更新」ボタンをクリックする。
下記のように表示されます。
記事タイトルの表示変更
デフォルトでは、サムネイル画像と、タイトルとがくっついて表示されます。
少し離したい場合などは下記のように設定します。
記事タイトルの表示変更手順
①管理画面から「外観」>「テーマエディター」を開く。
②「編集するテーマを選択」箇所が現在利用中のテーマであることを確認し、
「スタイルシート (style.css)」をクリックする。
③以下コードを追記する。
/* タイトルの表示の高さ等変更 */ .widgets-list-layout-links{ margin-top: 2px; /* 上部からの距離 */ font-size: 0.85em; /* 文字の大きさ */ line-height: 1.3; /* 行高 */ float: none!important; width: auto!important; }
④「ファイルを更新」ボタンをクリックする。
下記のように表示されます。
記事タイトル(リンク)の下線非表示等設定
デフォルトでは、リンクはWordPressの設定に合わせ、青文字、下線付きで表示されます。
文字を黒、下線なしにしたい場合は以下のようにします。
記事タイトルの下線非表示等変更手順
①管理画面から「外観」>「テーマエディター」を開く。
②「編集するテーマを選択」箇所が現在利用中のテーマであることを確認し、
「スタイルシート (style.css)」をクリックする。
③以下コードを追記する。
/* リンク下線の非表示等 */ .widgets-list-layout-links a{ padding: 7.2px; /* リンク周辺の空白 */ color: #333; /* 文字色 */ text-decoration: none; /* 下線なし */ }
④「ファイルを更新」ボタンをクリックする。
記事間の区切り線表示
デフォルトでは、記事を区切る上下線はありません。
表示させるには以下のようにします。
区切り線表示手順
①管理画面から「外観」>「テーマエディター」を開く。
②「編集するテーマを選択」箇所が現在利用中のテーマであることを確認し、
「スタイルシート (style.css)」をクリックする。
③以下コードを追記する。
.custom_sc ul li:after { content: ""; border-bottom: solid 1px #cddee0!important; /* 区切り線の太さや線の種類、色 */ width: 100%; height: 10px; }
④「ファイルを更新」ボタンをクリックする。
下記のように表示されます。
まとめ
できましたでしょうか?
今回のカスタマイズは、Cocoonの新着記事一覧の表示に合わせてみました。
サムネイル画像が正方形だったり、
最終行の下にも区切り線が入ってしまっている以外は、大差ないのではないでしょうか?
みなさんも、表示させたい結果をイメージし、それに合うように、CSS等でカスタマイズしてみてくださいね✨