残念ながら、このパラメーターを使用しsearch=
て検索できるのは、「テキスト入力」、「テキストエリア」、および「ドロップダウン リスト」フィールドのみです。したがって、これには query モジュールを使用する必要があります。
exp_channel_titles
これらのパラメーターに対してクエリを実行するだけの場合は、テーブルから必要なエントリ ID を取得できるはずです。その後、 Stashプラグインなどを使用entry_id
して、結果の を通常のチャネル エントリ タグにフィードします。はい、名目上はそのようにもう 1 つのクエリですが、EE は db スキーマをかなり重く抽象化するため、代わりの方法はJOIN
s の混乱で失われることです。
したがって、(疑似コード、そのままでは機能しません)のようなもの:
エントリを取得します。ステータスは exp_channel_titles の単なる文字列です。これは必要な日付列です。これは UNIX タイムスタンプとして保存されるため、フィルター データの形式に応じてentry_date
選択する必要があります。DATE( FROM_UNIXTIME(entry_date))
{exp:stash:set name="filtered_ids"}{exp:query sql="SELECT entry_id
FROM exp_channel_titles
WHERE status LIKE ...<your filter here>"
backspace="1"
}{entry_id}|{/exp:query}{/exp:stash:set}
テンプレートの後半:
{exp:channel:entries
entry_id="{exp:stash:get name="filtered_ids"}"
}
{!--loop --}
{/exp:channel:entries}
はい、おそらく純粋な CI で慣れ親しんでいるものと比べると混乱していますが、トレードオフは、EE から無料で入手できるすべてのもの (CP、テンプレート作成、メンバー管理など) です。
ちなみに Stash は素晴らしいです - ほとんどの EE パフォーマンスの問題を大幅に軽減したり、解析順序の問題を回避したりするために使用できます