de-vraag
  • 質問
  • タグ
  • ユーザー
通知:
報酬:
登録
登録すると、質問に対する返答やコメントが通知されます。
ログイン
すでにアカウントをお持ちの方は、ログインして新しい通知を確認してください。
追加された質問、回答、コメントには報酬があります。
さらに
ソース
編集
 segovius
segovius
質問

Stash Listを2つのカスタムフィールドでフィルタリングすることは可能ですか?

リストを取得してカスタムフィールドで注文していますが、一部のフィールドを除外して他のフィールドを含める必要があります。基本的にカスタムフィールドのparamによるEEの検索のケースですが、OR not ANDを使用していました。以前は、ネイティブEEとは異なりOR検索をサポートするMark CroxtonのSearch FieldsモジュールでStashを使用していませんでした。

私の質問は - 私はどのようにStashリストにこれを複製できますか? Stashで検索フィールドを使用することは可能ですか?私が今までに持っているものは、そうではないようです。

1 2014-02-11T17:46:33+00:00 1
ExpressionEngine
stash
custom-fields
Chris Leon
11日 2月 2014 в 6:56
2014-02-11T18:56:34+00:00
さらに
ソース
編集
#56794086

EE はチャネルエントリタグパラメータとのORマッチングをサポートしています:

search:body="pickles|shoes"

それだけでは不十分な場合:

正規表現でStashリストをフィルタリングする

結果セットをリストとしてキャプチャするときは、独自のインデックス列を作成できます。インデックス列は、フィルタリングする値を連結します。

テンプレートを表示するたびに高価なchannel:entriesクエリを再実行する必要がないようにリストをキャッシュします。私は、インデックス列の区切り記号として '@'を使用しています:

{exp:stash:set_list name="cars" parse_tags="yes" limit="500" save="yes" scope="site" replace="no"}
    {exp:channel:entries channel="cars"}
        {stash:index}{marque}@{color}{/stash:index}
        {stash:marque}{marque}{stash:marque}
        {stash:color}{color}{stash:color}
        {stash:reg}{title}{/stash:reg}
    {/exp:channel:entries}
{/exp:stash:set_list}

{!-- get red OR blue AND volkswagen --}
{exp:stash:get_list name="cars" scope="site" match="#^(blue|red)@volkswagen$#" against="index"}
   {reg} 
{/exp:stash:get_list} {!-- get red OR volkswagen --} {exp:stash:get_list name="cars" scope="site" match="#^[email protected]|@volkswagen$#" against="index"} {reg}
{/exp:stash:get_list}

Caveat

チャネルエントリを持つ数百を超えるエントリを出力すると、メモリが高価になり、テンプレートを最初に表示してキャッシュを生成したときにクエリが実行されます。関連するエントリを取得するために独自の最適化されたクエリを作成することも、大きな結果セットをフィルタリングする場合は、優れた低検索。



2
0
質問の追加
カテゴリ
すべて
技術情報
文化・レクリエーション
生活・芸術
科学
プロフェッショナル
事業内容
ユーザー
すべて
新しい
人気
1
Roxana Elizabeth CASTILLO Avalos
登録済み 6日前
2
Hideo Nakagawa
登録済み 1週間前
3
Sergiy Tytarenko
登録済み 1週間前
4
shoxrux azadov
登録済み 1週間前
5
Koreets Koreytsev
登録済み 1週間前
© de-vraag :年
ソース
expressionengine.stackexchange.com
ライセンス cc by-sa 3.0 帰属