【WordPress】カスタムフィールドを使って投稿ごとに「関連記事」を設定する

  • このエントリーをはてなブックマークに追加

 関連記事を表示するプラグインを使用することもできますが、あまり融通が利かなかったり、CSSの調整が面倒だったりなので、制作に慣れている方であれば、自分でゼロから設定してしまった方が早い場合があります。

 今回は、カスタムフィールドを追加するプラグインを使用して、各投稿ごとに関連記事を設定できるようにします。関連記事という使い方ですが、記事は手動の選択制で、1つめが未設定であればランダム表示するだけなので厳密に言えば関連記事ではありませんが、サイト内を周回させたいだけであれば大体これで事足ります。

要件

【仕様】
・投稿作成時に、編集画面で「関連する記事」を手動で選択する。
・「関連する記事」の1つめが選択されていない場合は、今までの記事をランダムで表示する。

【使用するプラグイン】
Advanced Custom Fields(カスタムフィールドを作成するプラグイン)

【作業の流れ】
01.カスタムフィールドを設定する
02.投稿詳細のPHPファイルに表示領域を追加
03.CSSの調整(独自でゼロから設定)
04.各投稿の編集画面で関連記事を設定


導入方法

01.カスタムフィールドを設定する

 まず、プラグイン「Advanced Custom Fields」をインストールします。
インストール後、ボタンが「有効化」に変わるので有効化までしてください。


カスタムフィールドを新規追加します。


新規追加の画面です。今回は、関連記事を3件選べるようにします。



入力中の画面です。「フィールドを追加」して、まずは関連記事の入力欄1つめを作ります。


—-
【各項目の解説】
・フィールドラベル
 投稿編集画面に表示される項目名です。任意で好きな名前を付けます。今回は「関連記事[1]」としました。
・フィールド名
 テンプレートに出力する際に使用します。半角英数字で、一意の名前を付けてください。今回は「related1」としました。表の画面に表示する際、連番でタグを出力するので、必ず末尾を数値の連番にしてください。
・フィールドタイプ
 「投稿オブジェクト」を選択してください。これで過去の記事を選択できるようになります。
・投稿タイプで絞り込み
 記事のみ選択、固定ページを除外、カスタム投稿タイプも含める…など、条件に合わせて自由に選択してください。今回は通常のpostのみ取得したいので「投稿」を選択しました。
・タクソノミーで絞り込み
 タクソノミーでの条件を付与したい場合は選択してください。
・空の値を許可するか?
 選択しなければランダムで表示、という条件にしたいので、「はい」にして空の値を許可します。※絶対に選択してほしい場合は「いいえ」にしても表示に問題はありません。
・返り値のフォーマット
 ここは「投稿ID」を選択してください。
—-

 これで1つめのフィールドが完成です。これと同様にフィールドを追加し、3件分のフィールドを作成します。フィールド名は連番にして欲しいので、2つめは「related2」、3つめは「related3」といったルールで増やしてください。4件でも5件でも、3件以上追加しても構いません。

 以下が、3件登録した状態です。登録が完了したら、どの投稿タイプに適用するかを選択します。通常のpostに表示したい場合はそのままで大丈夫です。カスタム投稿タイプに適用する場合は、該当のカスタム投稿タイプを選択します。


ここまで完了したら、フィールドグループを「公開」してください。



02.投稿詳細のPHPファイルに表示領域を追加

 次に、投稿詳細のテンプレートPHPに表示領域を追加します。投稿詳細のページは、テーマのフォルダの中に「single.php」か「singular.php」という名前で存在しています。カスタム投稿タイプの場合は single-xxxx.php といったファイル名になっていると思います。(xxxxのところに、カスタム投稿タイプのタイプ名が入ります。single-movie.phpとかですね。)

 ファイルを開いたら、挿入したい箇所に以下のタグをコピペしてください。



タグを調整する場合は、「ループするタグ」の中身を調整してください。自動ループ用と、選択時の出力と、2ヶ所あります。
※1 数値を表示したい件数に変えてください。
※2 手順01で設定した、関連記事1つめのフィールド名を入力します。今回はrelated1です。
※3 投稿タイプを設定します。今回はpostにしました。カスタム投稿タイプを使用する場合は、カスタム投稿タイプの名前を入れてください。
※4 ※2と同じく、関連記事1つめのフィールド名を挿入します。ただし、連番の最後の数値を抜いてください。

03.CSSの調整

CSSは、タグに合わせて自由に調整してください。


04.各投稿の編集画面で関連記事を設定

 投稿の編集画面を見ると、エディターの下部に「関連記事」の項目が追加されています。


ここを選択して、記事を投稿すれば投稿詳細画面に反映されます。

執筆者:森島[ WEBデザイナー ]

8bit デザイナーです。 デザイン・マークアップ・映像制作など幅広く担当しています。

関連記事

プログラミング

【phpdotenv】PHPで環境変数を取り扱うお話

PHPでサーバーの環境ごとに設定ファイルを用意する場合、config.phpなどのファイルにデータベースの接続情報やAPIのキーなどをdefineで登録すると思います。 これは昔からある一般的なやり方ですが、例えば「ローカル環境やテスト環境と本番環境で情報を出し分けたい」「GitHubやSubversionなどに接続情報を管理されたくない」ということがあるかと思います。 Linuxの場合は「.env」でユーザーごとの情報をあらかじめ設定することが可能ですが、PHPだとデフォル […]

Webサービス

【CAPTCHA系】reCAPTCHAの代替サービスを紹介するお話

みなさん、reCAPTCHAを使ってますか? CAPTCHAと呼ばれる機能は問い合わせフォームやログインフォームなどいわゆるbot系対策として有効で、その中でもreCAPTCHAは無料かつ簡単に導入できるたため、様々な場所で使われてます。 目次1 2024年4月から実質有料化?2 他にないのだろうか?3 アカウントを作る4 PHPでの実装5 最後に 2024年4月から実質有料化? しかし、2024年4月から今まで100万リクエストまで無料だったのが、1アカウント合計1万リクエ […]

Webサイト制作

Webアクセシビリティの基本を学ぼう!

近年Webサイト制作時に求められる『Webアクセシビリティ』。 正直なんだかよくわからない、ややこしそうだなあと思う方も多いと思います。 自分も勉強中ではありますが、今回は対応しやすそうな内容をなるべくわかりやすくまとめてみました。 一緒にWebアクセシビリティについて学んでいきましょう。 目次1 そもそもWebアクセシビリティってなに?2 基本的な対応内容2.1 色のコントラストをはっきりさせよう2.2 文字サイズを変更できるようにしよう2.3 できるだけテキストベースを心 […]

株式会社8bit (エイトビット)

東京都目黒区でWebサイト制作、Webシステム開発などを行っております。
コーポレートサイトやWebサービスの企画・提案を得意としており、自社での経験を元にアイデアをカタチにするお手伝いをさせていただいております。

Web制作に関するご相談はお気軽にどうぞ

弊社に制作をご依頼いただく際の費用感をご確認いただける、
見積りシミュレーションをご用意いたしました。