unitone に絞り込み検索機能を追加する unitone Search プラグインをリリースしました!

unitone Search は unitone 専用プラグイン(アドオン)です。他のテーマでは動作しませんのでご注意ください。

unitone に絞り込み検索機能を追加する unitone Search プラグインをリリースしました。

ざっくりとイメージが掴めるように動画を撮ってみました。

ダウンロード&インストール方法

unitone Search は、unitone ライセンスキーを契約された方がダウンロードできます。

マイアカウントページ → ダウンロードから unitone-search.zip をダウンロードしてください。

ダウンロードできたら、お使いの WordPress のダッシュボード → プラグイン → 新規プラグインを追加 → プラグインのアップロードから unitone-search.zip をアップロードしてインストール&有効化してください。

使い方

1. フォームを作成する

ダッシュボード → unitone Search → 新規投稿を追加をクリックしてください。

デフォルトで、キーワード・カテゴリー・タグの絞り込み検索が設定されたフォームの作成画面が開きます。

フォームの構成は下記のようになっています。

- 検索ボックス
  - フレックス
    - キーワード検索
    - タクソノミー検索(カテゴリー)
    - タクソノミー検索(タグ)

2. 検索する投稿タイプを指定する

検索する投稿タイプを指定してください。

3. 保存

「公開」をクリックすると、検索フォームが保存されます。

4. 任意の場所に検索ボックスを埋め込む

「公開」しただけでは検索ボックスはページに表示されるようになりません。

検索ボックスを表示したい場所に、検索ボックスブロックを挿入してください。ここでは、ブログホームテンプレートに挿入する例を説明します。

「ダッシュボード → 外観 → エディター → テンプレート → ブログホーム」と進み、ブログホームテンプレートを開いてください。開いたら、任意の場所に「検索ボックス」ブロックを挿入し、表示したい検索ボックスを選択してください。設定できたら「保存」をクリックして変更を保存してください。

ブロックの種類

下記の検索項目を設置できます。

キーワード検索

キーワードで絞り検索をおこないます。

タクソノミー検索

指定したタクソノミーで絞り込み検索をおこないます。

選択肢を表示する方式(コントロールの種類)を「チェックボックス」「ラジオボタン」セレクトボックス」から選択できます。

フックを使って、検索ボックスに表示されるタームの選択しをフィルタリングできます。

/**
 * タクソノミー検索で表示されるタームをフィルタリングする。
 *
 * @param array $terms Terms.
 * @param array $args Args.
 *   @var string $taxonomy Taxonomy name.
 *   @var string $post_id Search form ID.
 *   @var string $post_type Related post type.
 * @return array
 */
add_filter(
    'unitone_search_taxonomy_search_terms',
    function( $terms, $args ) {
        // 検索フォームが複数ある場合、タクソノミー検索が複数ある場合は
        // 必要に応じて $args の情報を使い条件分岐してください。
        $new_terms = array();
        foreach ( $terms as $term ) {
            // タームのスラッグが pickup の場合は表示しない
            if ( 'pickup' !== $term->name ) {
                $new_terms[] = $term;
            }
        }
        return $new_terms;
    },
    10,
    2
);

期間検索

期間で絞り込み検索をおこないます。

デフォルトでは未来の日付の投稿の絞り込みには対応していませんが、下記のフィルターフックを使用して対応させることができます(未来の日付の投稿も表示されるようになり、検索の対象に含まれるようになります)。

// 未来の日付も対象にしたい投稿タイプに true を返す
add_filter(
    'unitone_search_includes_future_posts',
    function( $is_include, $post_type ) {
        // 投稿タイプ event については、未来の日付の投稿も表示して検索対象に含める。
        if ( 'event' === $post_type ) {
            return true;
        }
        return $is_include;
    },
    10,
    2
);

カスタムフィールド検索

カスタムフィールドで絞り込み検索できます。

表示する方式(コントロールの種類)を「テキスト」「チェックボックス」「ラジオボタン」セレクトボックス」から選択できます。「チェックボックス」「ラジオボタン」セレクトボックス」の場合は選択肢も設定する必要があります。

WordPress の仕様上、カスタムフィールドの検索は遅くなる場合があるので積極的な使用はオススメしません。

検索ボックス

unitone Search の各検索ブロックを配置するためのブロックです。

検索ボックスブロックの中にはどんなブロックでも配置できますが、各検索ブロックは検索ボックスブロックの中(入れ子可)にしか配置することができません。

unitone Search

作成した検索フォームを実際のページに設置するためのブロックです。

inc2734のアバター

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です