WordPressのプラグイン「List category posts」を使用すると、誰でも簡単に投稿リストを表示することが可能です。
しかし、「投稿日」や「更新日」といった日付は、デフォルトだと以下のようにWordPressで設定している形式で出力されます。
基本的にはそれで問題ないのですが、案件の中には
投稿リストで表示する日付の形式だけ変えたい!
というものが、たまにあります。
そこで今回は
WordPressプラグイン「List category posts」で
表示する日付の形式を自由に変える方法
をご紹介します。
「List category posts」で出力する日付の形式を変更するためには、プラグインのファイルを複製してその中にPHPの処理を追記する必要があります。
しかし、この記事の手順を踏めば誰でも簡単に変更可能なのでぜひお試しください!
List category postsで出力する日付の形式を変更する手順
「List category posts」で作成した投稿リストの表示内容の順番を変更する手順は以下の通りです。
- 現在使用中のテーマディレクトリ直下に「list-category-posts」というディレクトリを作成する
- プラグインのディレクトリ内から投稿リスト表示用のテンプレートファイル(default.php)をコピーする
- ②でコピーしたテンプレートファイル(default.php)を①で作成した「list-category-posts」内に設置する
- テンプレートファイル(default.php)のファイル名を任意のものに変更する
- List category postsの設定項目「テンプレート」で、④で作成したファイル名を選択する
- ④で用意したファイルを編集する
手順が多く感じるかもしれませんが、やることと言えばテンプレートファイルをコピペしてその中にこの記事でご紹介するソースコードを追記するだけです。
以下より、ひとつずつ順番にご説明していきます!
① 使用中のテーマディレクトリ直下に「list-category-posts」というディレクトリを作成する
まずは、いま現在使用中のテーマディレクトリの直下に「list-category-posts」というディレクトリを作成します。
例えば、使用中のテーマが「sample」という名前であれば、
~省略~/themes/sample/list-category-posts
という構成になるようにディレクトリを作成します。
list-category-posts
② プラグインのディレクトリ内からテンプレートファイルをコピーする
次に、プラグインのディレクトリ内からテンプレートファイル(default.php)をコピーします。
default.phpはList category postsの初期状態において投稿リスト生成に使用されるデフォルトのテンプレートファイルです。
このdefault.phpを複製し、そのファイル内を編集することで任意の出力内容のテンプレートファイルを作成可能です。
default.phpは以下のディレクトリ内にあります。
default.phpの場所
~省略~/wp-content/plugins/list-category-posts/templates/
これをいったんCtrl + Cでコピーしておきます。
③ コピーしたdefault.phpを①で作成した「list-category-posts」内に設置する
続いて、コピーしたdefault.phpを、①で現在使用中のテーマディレクトリ直下に作成した「list-category-posts」内に貼り付けます。(貼り付け=Ctrl + V)
貼り付け後のファイル構成
~省略~/themes/sample/list-category-posts/default.php
④ default.phpのファイル名を任意のものに変更する
テーマディレクトリ直下にdefault.phpを設置したら、続いてこのファイル名を任意のものに変更します。
名前はご自身にとって分かりやすいものならばなんでも構いません。
例えば僕はこのテンプレートファイルをスライダー用に使用したかったときは「slider.php」という名称にしました。
ファイル名変更後の状態(例)
~省略~/themes/sample/list-category-posts/slider.php
⑤ List category postsの設定項目「テンプレート」で作成したファイル名を選択する
ここで、WordPress管理画面の「外観→ウィジェット」をご覧ください。
「List category posts」のウィジェットの設定画面の最下部にある「テンプレート」には、初期状態だと以下のように「default」の表示しかありません。
初期状態
しかし、ここまでの作業を完了すると、設定していただいたファイル名の部分が「テンプレート」に表示されるようになっています。
ファイル名を「slider.php」に変更したときの例
「テンプレート」項目で、新しく追加された方のテンプレート(上の画像なら「slider」)を選択して設定を保存して下さい。
⑥ ④で用意したファイルを編集する
最後に、④で任意の名前に設定したファイルをテキストエディタで開き、実際にPHPのソースコードを追記していきます。
具体的な編集内容は以下の通りです。
- 「get_dateが記述されている行」をコメントアウトする
- 以下に紹介するソースコードを追加する
/**
* 日付のフォーマットを変える
*/
// 日付情報を取得
$origin_date = $this->get_date($post); //◯年◯月◯日の形式
// 「年」「月」を「.」に置き換える
$date_del_year = str_replace("年", ".", $origin_date);
$date_del_month = str_replace("月", ".", $date_del_year);
// 「日」を消す
$after_date = str_replace("日", "", $date_del_month);
$lcp_display_output .= $after_date;
ソースコード追加後
このソースコードでは、
「◯年◯月◯日」という形式を「◯.◯.◯」という形式に変更しています。
(例)2024年5月30日 → 2024.5.30
初期表示(WordPress設定で「◯年◯月◯日」形式を設定している状態)
ソースコードを追加した後の表示
ご覧のように「日付」の表示形式が変更できました!
List category postsはPHPの知識があると柔軟な変更も可能
以上が「List category posts」で日付の表示形式を変更する方法でした。
今回は
◯年◯月◯日 → ◯.◯.◯
の形式に変更する方法をご紹介しましたが、ご自身のWordPress上での日付形式と先ほどのソースコードを照らし合わせ、少しだけ修正すれば好きな日付形式に変更可能です。
PHPに馴染みのない方にとってはソースコード自体が見づらいかもしれませんが、今回のソースコードでは「なに」を「どんな文字」に置き換えるのかという部分がハッキリしていれば修正も難しくありません。
もし今回の解説とは違う形式に変更してみたいという場合も、ぜひ修正をお試しください。
それでは、最後までご覧いただきありがとうございました!
コメント