【日付検索機能付き】「イベント系ポータルサイト」をWPプラグインで作る方法

実際に使用した商品をレビューしています。アフィリエイト広告リンクを含みます。
GOLD BLOGの購入に関するFAQ

この記事は「Vektor WordPress Solutions Advent Calendar 2023」の12月17日の記事になります。前回のChiaki Sugishitaさんの「投稿タイプを追加するならLightning+VK All in One Expansion Unitが超便利!」はチェックしましたか?他社さんの作ったサイトの引っ越し作業って、大変ですよね。しかもWordPressではないプラットフォームの移行作業は神経を使います。

さて、今回は日付検索機能付きのポータルサイトの作り方について書きたいと思います。

初心者

イベント系のポータルサイトを作りたい…
イベント日で検索できるようにしたい….
便利なプラグインってないの?

そんな悩みを解決します。

日付検索付はプラグインを使うと簡単に作れます。というのが本記事のメインテーマです。コードの知識はなくてもサクッと作れてしまう方法を紹介します。

まずは今回紹介するプラグインを使って、シンプルなデモサイトを作ってみました↓

日付検索機能付きイベント系ポータルサイト
  1. デモサイト

本記事ではWordPressのプラグインを使い、日付検索機能付きのポータルサイトを作る方法を紹介します。

この記事を書いた人
  • IT業界24年のベテラン エンジニア
  • WordPressで企業サイトの構築しています
  • 取り扱いWordPressテーマは300個オーバー
SWELLマニアの かんた です
目次

ポータルサイトの構成は?

日付絞り込み機能付きポータルサイトのサイトの構成は?

まずはサイトの構成です。先ほど紹介したデモサイトはWordPressで作っています。

テーマは無料の「Lightning」を使っています。ちなみにLightningは日本の会社ベクトルさんのプロダクトです。

プラグインの構成は?

プラグインの構成は?
プラグインの構成は?

検索フォーム部分はVK Filter Search Proプラグインで作成しています。

VK Filter Search ProもLightning同様にベクトルさんのプロダクトです。

プラグインに関してはAdvanced Custom FieldsプラグインやCustom Post Type UIなど、ポータルサイトではお馴染みのものをいくつか使っています。

デモサイトで有効化しているプラグインは次の通りです↓

プラグイン一覧

スクロールできます
プラグイン区分役割
Advanced Custom Fields任意カスタムフィールドの管理用。
Code Snippets任意テンプレートを編集せずにカスタマイズコードを追加する用途で使っています。
Custom Post Type UI任意音楽のジャンル、アーティスト、場所などの分類用。
Lightning G3 Pro Unit任意カスタマイザーの拡張機能をアップさせるLightning専用プラグイン。
VK Blocks Pro任意カスタムブロックプラグイン。
VK Filter Search Pro必須絞り込み検索機能プラグイン。
日付検索ポータルサイトのプラグイン構成

VK Filter Search Proは必須。

その他のプラグインは任意です。

かんた

デザインや実現したい機能に合わせて選びましょう!

日付で絞り込み検索するには?

日付で絞り込みをするには?

VK Filter Search Proには日付検索機能が標準で付いています

そして、

予約投稿を無効化する

結論これだけです。

これだけの作業であっという間に日付検索機能を実装できます。

日付検索を導入する操作手順を紹介。

具体的な手順を画像を使って紹介します。

STEP
VK Filter Search Proブロックを設置する

まずは検索フォームを作るステップです。

VK Filter Search」→「新規投稿を追加」をクリック↓

タイトル部分に管理用の名前を入力します↓

VK Filter Search Pro」を選択し、エディター上にフォームを配置します↓

STEP
日付検索ブロックを設置

配置したフォーム上で「VK Post Date Search Pro」を選択します↓

日付検索ブロックを配置
日付検索ブロックを配置

VK Post Date Search Pro = 日付検索ボックス機能です。

STEP
予約投稿を無効化する

日付検索ブロックを選択します。

画面右側のブロックオプション内、「予約投稿を無効化する投稿タイプ」で「投稿」を選びます↓

予約投稿を無効化する投稿タイプを選択
予約投稿を無効化する投稿タイプを選択

デモサイトでは投稿機能でイベントを管理しているので「投稿」を選んでいます。
カスタム投稿でイベントを管理する場合は、ブロックオプションからカスタム投稿を選択しましょう。

以上で必須の作業は終わりです。

その他ブロックオプションから好みの設定をしてください。

ちなみに、デモサイトでは「いつからいつまで」と範囲指定できる構成です。

日付の範囲指定

これはプラグインのオプションで「範囲内指定」を選んでいるだけです↓

デモサイトの設定

オプション設定した内容
日付タイプ公開日
比較条件範囲指定内
デモサイトの設定オプション

デモサイトで設定したオプション以外にも選択肢があるので、お好みで選んでください。

その他のオプション

オプション選択肢
日付タイプ– 公開日
– 更新日
比較条件– 指定日のみ
– 指定日以前
– 指定日以降
– 範囲指定内
日付検索の設定オプション
STEP
ページにフォームを設置する

フォームをページに設置するステップです。

任意の固定ページを作成します。

Call Filter Seach Form」をクリック↓

右側のブロックオプション「絞り混み検索フォームを選択」から、作成済みのフォームを選択↓

フォームが表示されたら「更新」をクリック↓

かんた

以上で設定終了です!

サイト運用側では何をすれば良いの?

デモサイトでは「公開日」を日付検索の対象にしています。サイト運営者は「公開日=イベント開催日」として、記事を投稿する必要があります。

例えば、2024年1月1日のイベントであれば、公開日を2024年1月1日にするという運用です↓

日付を指定して公開する

本来だと投稿する日付より先の日付を指定すると予約投稿になってしまいます。

予約投稿は、指定した日付まで記事は公開されません。

予約投稿を無効化すると、未来の日付で投稿しても即公開されます。

この即公開される仕組みを使い、未来のイベントを検索対象に含めるという仕組みです。

【備考】その他ポータルサイト作りで設定したこと

【備考】その他ポータルサイトで設定したこと

これまでは日付検索部分を中心に解説しました。

ここからはそれ以外の部分について少し解説します。日付検索とは関係のない話なので、読み飛ばしても構いません。

検索の「分類」を作る

分類を作る
分類を作る

検索フォームに「アーティスト」「場所」「ジャンル」といった項目を作成しました。

各項目はCustom Post Type UIプラグインで作成したタクソノミーです。

タクソノミーは、カテゴリーやタグなどの親戚です。

設定した分類

スクロールできます
タクソノミー名タクソノミースラッグ
アーティストartist
場所location
ジャンルgenre
作成した分類

タクソノミーの設定はプラグインの管理画面から、ポチポチするだけです。

かんた

コードは一切編集していません。

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

カスタムフィールドの出力
アーカイブページにイベントの詳細を表示

アーカイブページ上にイベントの詳細情報を表示するため、ACFプラグインで次のカスタムフィールドを設定しています↓

設定した内容

スクロールできます
フィールドタイプフィールドラベルフィールド名
番号チケット代金price
時間選択ツール開演時間opening
カスタムフィールドの設定

カスタムフィールドの設定もプラグインの管理画面からポチポチと作業するだけ。

かんた

コードレベルでの作業はありません。

アーカイブページに「カスタムフィールド」+「ターム」名を出力

カスタムフィールドの出力
アーカイブページにイベントの詳細を表示

テーマ固有の設定です。
本記事ではLightning用のカスタマイズコードを紹介します。

デモサイトでは検索結果を含むアーカイブページに、イベントの詳細情報を表示しています。

表示している詳細内容

項目内容
公演日記事の公開日
開演時間カスタムフィールド
公演場所ターム名
チケット代金カスタムフィールド
アーカイブページの表示内容

VK Filter Search Proの検索結果ページのデザインは、有効化しているテーマのsearch.php次第です。

検索結果のページを変更したい場合は、テーマの出力に変更を加えるカスタマイズが必要です。

例えば…

  1. 子テーマ化し、functions.phpにコードを追加する
  2. 子テーマ化し、対象テンプレートをコピーしカスタマイズする
  3. Code Snippetsなどのプラグインにコードを追加する

テーマ開発元のベクトルさんがサンプルコードを紹介しています↓

紹介しているサンプルコード

/**
 * 賃貸物件で表示する投稿情報にカスタムフィールドの値を追加
 */
function my_vk_post_options_chintai_add_cf( $options ) {

	if ( 'chintai' === get_post_type() ) {
		// カスタムフィールドの値など独自に表示したい要素
		global $post;
		$append_html  = '';
        if ( $post->yachin ){
            $append_html .= '<p class="data-yachin"><span class="data-yachin-number">' . esc_html( $post->yachin ) . '</span>万円</p>';
        }
		$append_html .= '<table class="table-sm mt-3">';
		$append_html .= '<tr><th>管理費</th><td class="text-right">' . esc_html( $post->kanrihi ) . '円</td></tr>';
		$append_html .= '<tr><th>礼金</th><td class="text-right">' . esc_html( $post->reikin ) . '円</td></tr>';
		$append_html .= '<tr><th>築年数</th><td class="text-right">' . esc_html( $post->chikunen ) . '年</td></tr>';
		$append_html .= '</table>';

		$options['body_append'] .= $append_html;
	}

	return $options;
}
add_filter( 'vk_post_options', 'my_vk_post_options_chintai_add_cf' );

引用元:GitHub – vektor-inc

コードはCode Snippetsプラグインなどプラグイン上に登録できるものを利用するか、子テーマのfunctions.phpに追加します。

上記コードでは、カスタム投稿(chintai)を対象にしている点に注意しましょう。

通常の投稿(post)でイベントを管理している場合は、次の通り置き換えます↓

/**
 * 標準の投稿にカスタムフィールドの値を追加
 */
function my_vk_post_options_chintai_add_cf( $options ) {

	if ( 'post' === get_post_type() ) {
		// カスタムフィールドの値など独自に表示したい要素
		global $post;
		$append_html .= '<table">';
		$append_html .= '<tr><th>セルの名称</th><td>'. ACF出力用のコードを書く.'</td></tr>';
		$append_html .= '<tr><th>セルの名称</th><td>'. ACF出力用のコードを書く.'</td></tr>';
		$append_html .= '<tr><th>セルの名称</th><td>'. ACF出力用のコードを書く.'</td></tr>';
		$append_html .= '</table>';
		$options['body_append'] .= $append_html;
	}

	return $options;
}
add_filter( 'vk_post_options', 'my_vk_post_options_chintai_add_cf' );

ACF出力用のコードを書く」部分は、ベクトルさんが紹介しているサンプルコードを使っても構いませんし、ACF固有の関数で書いても構いません。

ちなみに、アーティスト名や場所などターム名を出力することもできます。

例えば、タクソノミースラッグがlocationのタームをリンク無しで表示させる場合は次のように書きます↓

		$terms = get_the_terms($post->ID, 'location');
		 foreach($terms as $term):
		 endforeach;
		$append_html .= '<tr><th>公演場所</th><td>'.$terms = $term->name.'</td></tr>';

絞り込み検索フォームの装飾

検索フォームの装飾
絞り込み検索フォームの装飾

デモサイトの絞り込み検索フォーム部分はCSSでアレンジしています。

フォームの背景を透明」にしたり「文字サイズを変更する」といった装飾方法については、次の記事で詳しく解説しています。

かんた

サンプルのコード付きです!

まとめ

プラグインを活用してポータルサイトに日付検索を付ける方法を紹介しました。

本記事で紹介した通りタネを知ってしまうと、コードの編集なしで誰でも簡単にできる方法です。

ちなみにVK Filter Search Proは有料です。

無料の検索プラグインを探していたのに….」という人もいるでしょう。ボクもWordPressを始めたばかりの時は、無料のものだけを利用していました。

「無料のプラグインを選んで、WordPressのアプデに対応してくれなかったら…」

「困ったときに自己解決できなかったら….」

長く利用するサイトで大事な機能を使う場合は、しっかりとアップデートやサポートのある有料タイプを選ぶ方が無難です。特にスキルや時間的に、自作したりメンテするのが厳しいと感じる人は、プラグインの選定をしっかりしましょう。

ちなみにVK Filter Search Proを含むベクトルさんのプロダクトは全てGPLライセンスです。1個購入すれば、複数のサイトに利用できます。もちろんクライアントワークにも利用できます

ボクは発売当時から使っていますが、お値段以上の価値があるとハッキリ感じます。

かんた

ぜひお試しください!

明日はChiaki Kouno(@chiaki_kouno)さんが書いてくれるそうです。どんな記事なんでしょうか?楽しみですね?

よかったらシェアしてね!
  • URLをコピーしました!
目次