3

URL の 3 番目の「セグメント」が原因ですべての exp:channel:entries が結果を返さなくなるという問題があります。

URL の例: 正常に動作
する: siteurl.com/index.php/one/two
動作しない: siteurl.com/index.php/one/two/three

エントリープルの例:
{exp:channel:entries channel="my_channel" category="18" sort="asc" search:show_toggle="=SHOW" orderby="sort_order"}

これは私が気付いていないある種の注射ですか?私はドキュメントを検索しましたが、カテゴリの仕様は URL 内のすべてを上書きする必要があると言えます。私はそれを台無しにしているかもしれませんが、私にできることがあるはずです。チャネル モジュールで変更できるものはありますか?

4

2 に答える 2

5

Channel Entries タグでダイナミックタグ パラメータを使用しない場合、ExpressionEngine はURL セグメント変数にエントリ IDまたはURL タイトルが含まれていることを期待します。

3 番目の URL セグメント/index.php/one/two/threeは数値のエントリ ID または URL タイトルではないため、Channel Entries クエリには情報が含まれていません。

設定dynamic="no"することで、リストが URL で渡されたものに影響されないようにすることができます。

非常に具体的なChannel Entries Query を作成したので、必ずタグ ループに追加dynamic="no"して、{exp:channel:entries}ExpressionEngineが URL セグメントを無視し、代わりに指定したパラメーターを使用するようにしてください。

{exp:channel:entries channel="my_channel" dynamic="no" ...}
    ...
{/exp:channel:entries}

さらに、単純な条件変数をコードに追加すると、結果が返されない場合にメッセージを表示できます。

{exp:channel:entries channel="my_channel" ... }
    {if no_results}Sorry, No Results{/if}

    ...
{/exp:channel:entries}

基本的なExpressionEngine の URL の概念とURL セグメントを理解することは、このような問題を理解してトラブルシューティングするために重要です。

于 2011-08-05T21:09:33.597 に答える
3

ExpressionEngine は、/index.php/ に続くセグメントを次のように調べます。

  • 最初のセグメントはテンプレート グループと見なされます
  • 次のセグメントは、そのテンプレート グループ内のテンプレートの名前であると見なされます
  • 3 番目のセグメントは、エントリのurl_title、またはセグメントが数値の場合はエントリの entry_id であると想定されます

したがって、あなたの場合、EE は1 つのテンプレート グループから2 つのテンプレートをロードし、ID が18で url_title がthreeのカテゴリにあるmy_channelチャネルからエントリを表示しようとしています。

カテゴリの指定は、URL 内のカテゴリ情報のみを上書きします。(たとえば、/template_group/template/category/doorstopsまたは/template_group/template/C10は、例で表示されるエントリに影響しません)。

タグで URL を完全に無視したい場合{exp:channel:entries}(ページネーションを除く)、dynamic="off"タグ パラメータに追加できます。

于 2011-08-05T18:55:25.980 に答える