2011-08-05 4 views
3

URLの3番目の「セグメント」が原因となります。ALL exp:channel:entries to結果を返すことを止める。expressionengine URLに3番目のセグメントを追加すると、exp:channel:エントリが結果を返すことを停止します。

例のURL:
が正常に動作します: siteurl.com/index.php/one/two
は動作しません: siteurl.com/index.php/one/two/three

例エントリプル:
{EXP:チャネル:チャネル= "my_channel" カテゴリ= "18" ソート= "ASC" 検索エントリ:show_toggleを= "= SHOW" ORDERBY = "SORT_ORDER"}

これは私が知らない注射のようなものですか?私はドキュメントを検索し、カテゴリの仕様がurlの中の何かを上書きする必要があることがわかりました。私はそれに腹を立てているかもしれないが、私ができることがなければならない。 チャネルモジュールで何か変更できますか?

答えて

5

あなたのチャンネルエントリータグでdynamic tag parameterを使用せずに、ExpressionEngineのは、あなたのエントリのエントリIDまたはURLタイトルを含むように URLセグメント変数を期待しです。

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

dynamic="no"を設定すると、URLに渡されたものの影響を受けないことが保証されます。

あなたは極めて特定チャンネルエントリのクエリを書いているので、ExpressionEngineの URLセグメントを無視し、代わりに、ユーザーが指定するパラメータを使用持っているあなたの{exp:channel:entries}タグループにdynamic="no"を追加してください:

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

さらに、あなたのコードに簡単なConditional Variableを追加することによって、あなたは何も結果が返されないメッセージを見ることができます

基本的な意味はExpressionEngine's URLであり、URL Segmentsはこのような問題の理解とトラブルシューティングにとって重要です。

+0

ありがとうございました。 –

+0

私のEE 2.x MSMセットアップでは、メインサイトでsegment_3ルールは適用されませんが、MSMを使用して作成した別のサイトで同じルールが適用されています。この背後にある理由は、新しいサイトで実行された場合、それはデフォルトのサイトにも存在するはずです。助言? – Prashant

3

ExpressionEngineのは、次のように/index.php/従うセグメントを見:

最初のセグメントが次のセグメントを であると仮定されるテンプレート群
  • であると仮定される
    • そのテンプレートグループ内のテンプレートのテンプレート
    • 3番目のセグメントは、エントリのurl_titleのいずれか、またはセグメントが数値の場合はだから、あなたのケースでは、EEは1つのテンプレートグループから、テンプレートをロードし、その後でだmy_channelチャネルからのエントリを表示しようとしているエントリの

    をしたentry_id のIDを持つカテゴリ18であり、のurl_titleは3つのです。

    お客様のカテゴリの指定は、カテゴリの情報をURLに上書きするだけです。 (/template_group/template/category/doorstopsまたは/template_group/template/C10など)は、どのエントリがあなたの例に表示されるかには影響しません。

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

  • +0

    非常に感謝しています。あなたの情報は非常に貴重です。 –

    関連する問題