Web活のロゴ

Web制作Output&初心者のための徹底ガイド

WordPressオリジナルテーマの構築。
カスタムフィールドとカスタム投稿で編集のしやすいサイトを構築しよう #3/4

2023.08.01worpressでオリジナルテーマの構築
はじめに
概要

WordPressのメリットの一つは、プログラミングの知識がなくても編集が容易なウェブサイトを構築できることです。今回は、プラグインを使ってカスタムフィールドやカスタム投稿タイプを設定し、テキストやリンクを編集する方法について実装してみたいと思います。

スポンサーリンク
※本記事の情報は執筆時点のものであり、閲覧時点では変更されている可能性があります。また、ご利用の環境によっては、本記事の内容が正常に動作しないことがあります。最新の情報については、公式サイトなどでご確認ください。
 

プラグインの紹介

ACF(Advanced Custom Fields)

カスタムフィールドはこちらのプラグインを使用します。WordPressの投稿やページに独自のカスタムフィールドを追加することができます。通常、WordPressでは、タイトルや本文などの基本的なフィールドしか提供されていませんが、ACFを導入することで、画像アップロード、ファイル選択、チェックボックス、ドロップダウンリスト、日付ピッカーなど、さまざまなカスタムフィールドを追加することができます。

ACFカスタムフィールド

 

CPT(Custom Post Type)

カスタム投稿はこちらのプラグインを使用します。通常の投稿や固定ページ以外の独自の投稿タイプを作成することができます。

CPTカスタム投稿タイプ

 

実装動画

サイトのボタンのテキストとリンクを編集するために、カスタムフィールドを使用します。まず、編集専用のカスタム投稿タイプ(ここでは「共通パーツ」)を設定します。その後、このカスタム投稿タイプにフィールドを追加し、それぞれのボタンに対してテキストとリンクの値を関連付けます。

 

<?php the_field();?>

こちらの関数を使用することで、ACFの値を表示することが可能です。the_field()関数は、引数としてカスタムフィールドの名前を受け取ります。ここではボタン1には’btn1’リンクには’link1’というフィールド名を指定います。第2引数には投稿のIDを記述することができます。詳細は下記にて説明いたします。

ACFの設定

 

カスタム投稿タイプの設置

必要な箇所は以下の3点です。
-投稿タイプスラッグ
-複数形のラベル
-単数形のラベル

CPT-カスタム投稿タイプの設定

 

上記を設定すると、新たにカスタム投稿タイプ(ここでは共通パーツ)が表示されます。そこにボタン編集のための投稿を追加します。ボタン編集をホバーすると、下部に投稿のIDが表示されます。このIDが、投稿と値を紐付けるためのキー(ここでは22)となります。

値を紐付けるキー

 

ACFの設定で、フィールドの表示を明確にすることで管理がしやすくなります。ここでは先程作成した共通パールのボタン編集を選択しています。

ACFの設定

 

index.php

<section>
 <div class="btn flex-row">
  <button><a href="<?php the_field("link1", 22); ?>"><?php the_field("btn1", 22); ?></a></button>
  <button><a href="<?php the_field("link2", 22); ?>"><?php the_field("btn2", 22); ?></a></button>
  <button><a href="">ボタン3</a></button>
  <button><a href="">ボタン4</a></button>
 </div>
 <!-- /.flex-row -->
</section>

このように記述することで、カスタムフィールドの値が反映され、編集がしやすくなります。

 

ACFの応用

ラジオボタンで表示と非表示を選択

ACFのラジオボタンを使って、ボタンを表示・非表示の選択ができるようにしました。これにより、まだリリース前のリンクなどを非表示にすることができ、便利な機能となっています。

実装動画

コードを編集せずに、ラジオボタンで操作できるようにすると、ユーザーアビリティが向上します。以下のコードを参考してみてください。また、こちらのコードをショートコードに組み込み、カスタムHTML内で使用することも可能です。ぜひチャレンジしてみてください。なお、ACFの値を取得する際はget_field()関数を使用しますので注意ください。

参考コード

<?php $btn1 = get_field("radio-btn1", 22);
$link1 = get_field("link1", 22);
$txt = get_field("btn1", 22);
echo '<span>var_dumpの値: ';
print_r($btn1);
echo '</span>';

?>

<div class="btn flex-row">
 <?php
 if ($btn1 === '表示する') {
    echo '<button><a href="' . $link1 . '">' . $txt . '</a></button>';
 }
 ?>
</div>
 
スポンサーリンク
まとめ
  • 開発中はキャッシュをクリアする方法を知っておくことが重要
  • キャッシュの削除にはシークレットモードでの確認や、スーパーリロードがある
  • セキュリティ面からもローカル環境で開発することは大切
  • ローカル環境の構築にはLocalが便利
  • WordPressは情報が豊富なため、適切な回答を得ることができる
  • 情報の収集にはチャットGTPを活用
  • WordPressでは更新や編集作業など、様々な機能を追加するためのプラグインが豊富に存在する
  • 上記を意識して、クライアントに対して意味のあるサイトを構築することが大切