# QUERY BLOCKS

## 概要
このプラグインをインストールすると、以下の4つのブロックが登録され、ブロックエディターだけでなくサイトエディターでも使用できるようになります（WordPress 6.7でテスト済み）。
以下、各ブロックの簡単な説明です。
1. Post Pickup
WordPressの投稿データをピックアップする機能を提供します。内部的にはサブクエリーを生成して、データベースからデータを抽出します。投稿タイプの選択、タームの選択で抽出データを選定し、フィールドの選択で必要なフィールドをレンダリングします。カスタムフィールドの選択も可能です。
クエリーのタイプに人気記事の抽出も用意しました。

2. Post Filter
IDで指定されたPost PickupをユーザーがフィルタリングするUIを提供するブロックです。フィルタリングは次の３つの種別があります。
- 文字列検索によるフィルタリング機能を提供します。検索の対象となるのは、タイトル、抜粋、本文ですが、オプション選択によりカスタムフィールドも対象とすることが可能です。
- 設定された期間内に投稿されたデータのフィルタリング機能を提供します。期間の設定は年、月、日の３種類が設定できます。
- 投稿に設定されたタームによるフィルタリング機能を提供します。フィルタリングの対象とするタームは投稿タイプに紐づいたタクソノミの選択により選別されます。

3. Post Pagenation
IDで指定されたPost Pickupのページネーション表示機能を提供するブロックです。
ページ番号を表示するタイプと前後のページに移動するタイプの２種類を用意しました。ページ番号を表示するタイプは、Design Buttonをインナーブロックとして持ち、
前後のページに移動するタイプはDesign Titleをインナーブロックとして持ちます。
これらのカスタムブロックのデザイン機能を活用することで多彩なカスタマイズが可能です。

4. Post Crumbs
IDで指定されたPost Pickupのフィルタリング情報をパンくずリストの形式で表示するブロックです。
フィルタリング情報はPost Filterによるフィルタリングに基づくもので、Design Titleのテキストとして表示されます。
そのため、Design Titleのデザイン機能により多彩なカスタマイズが可能です。
また、Post Pickupが単独投稿表示の場合は、フィルタリング情報に加えて、投稿記事のタイトルも表示します。

## その他特筆事項
1. 今回のバージョンでは、レスポンシブ対応が必要と思われるスタイル設定について、デスクトップモード（幅768px以上のデバイスでの表示）とモバイルモード（幅767px以下のデバイスでの表示）で、別々の設定が可能となっています。どちらの設定なのかは、ブロックエディタやサイトエディタで表示モードを切り替えたとき、サイドメニューの表示に「（デスクトップ）」、「（モバイル）」と表示されるようになっています。
なお、タブレット表示に関するレスポンシブには対応しておりません。
2. このプラグインは、Block Collectionsプラグインに依存しています。使用にあたっては、このプラグインをインストールし有効化する必要があります。
3. 文言等の表示に関しては、WordPressの国際化関数による設定を行っていますので、多国籍の言語表示が可能です。現時点においては英語と日本語表記が可能となっています。

## 留意事項
1. PHP クラスの管理は Composer で行っています。
[GitHub](https://github.com/itmaroon/block-class-package)
[Packagist](https://packagist.org/packages/itmar/block-class-package)

2. 他のプラグインと共通する機能やコンポーネントを npm パッケージ化し、npm からインストールして使用することにしました。
[npm](https://www.npmjs.com/package/itmar-block-packages)
[GitHub](https://github.com/itmaroon/itmar-block-packages)