今日はWordPressのプラグインのお話。
私のサイトの一覧ページはList category postsというプラグインを使って記事をリスト表示しているんだけど、デフォルトだとタイトル→日付の順で見づらいので、日付→タイトルの順で表示されるようにカスタマイズした話。
List category postsプラグイン
このプラグインは「自分でListページを作りたい」って場合に便利で、例えば私のブログの場合は「日々の色々」というカテゴリーの一覧はこんな感じに表示されます。
- ノロウイルスの恐怖から学んだ教訓 2017年01月16日
- 睡眠管理に便利なアプリ 2015年03月14日
- 初めての確定申告~無駄に払った税金を取り戻すぞ!~ 2015年02月26日
- 引っ越ししました 2015年02月18日
- 引っ越しってこんな大変だっけ? 2015年02月05日
これはこのショートコード1行で出せます。
[catlist name=etc date=yes dateformat="Y年m月d日 " numberposts=5 template=before_date]
- name:カテゴリー名
- date:投稿日付を表示する指定
- dateformat:日付表示のフォーマット
- numberposts:表示件数を指定
- template:適用するテンプレート
dateformatとtemplateはデフォルトで良ければ書かなくてOKですが、日付→タイトルの順で表示されるようにカスタマイズしたので指定します。
他にも色々と指定できる項目があるので、表示したい人は検索してみてください。
で、本題。
templateはデフォルトで良ければ書かなくてOK、と言いましたが、このデフォルトのテンプレートでタイトル→日付の順に表示される設定になってます。
日付を表示しない場合は困らないけど、日付を表示するとタイトルの長さがバラバラだから日付が見づらい。
日付の表示順を前に変更
というわけで、ちょいといじって表示の順番を入れ替えてみた。
1. テーマフォルダの下にフォルダを作成
まず、WordPressで使用しているテーマのフォルダ内に「list category posts」というフォルダを作成します。ちなみにファイルの操作はFile Managerというpluginを使っています。
たとえば私の場合「Cocoon Child」というテーマを使用しているので、
/wp-content/themes/cocoon-child-master/list-category-posts/
となります。
2. phpファイルをコピーして別名で保存
/wp-content/plugins/list-category-posts/templates/
に「default.php」というphpファイルがあるので、そのファイルをコピーして先ほど作成した
/wp-content/themes/pachyderm/list-category-posts/
の下に「before_date.php」のように別名で保存します。
3. phpファイルを編集
外観 > テーマエディター から先ほど作成した「before_date.php」を開きます。
//Show date:
$lcp_display_output .= $this->get_date($post);
この部分が日付を表示しているので、これをタイトルリンクを表示している
//Show the title and link to the post:
$lcp_display_output .= $this->get_post_title($post);
の上に持っていきます。
これで、タイトルの前に日付が移動します。
4. 作成したphpのファイル名をtemplateに指定する
これで、ショートコードでリスト表示するときに「template=phpのファイル名」と指定してあげることで、日付→タイトルリンクの順で表示されるようになります。
template=before_date
の部分ですね。
5. 日付の後に半角スペースを入れるように指定する
ただしこのままだと日付の直後にタイトルがくっついてしまうので、日付とタイトルの間に半角スペースを入れるために、dateformat="Y年m月d日 "
を追加します。