0

いくつかのリストを自動化しようとしていますが、その際に PHP を実行する必要があります。PHP を使用して、現在のページの URL タイトルと同じカテゴリを検出し、同じ URL タイトルを持つカテゴリの ID を出力します。

次に、この ID を製品のリストに適用して、関連するアイテム (カテゴリと同様ですが、構造を使用する柔軟性を提供します) を出力したいと考えています。

ただし、同じページで変数を定義しているため、何らかの理由で機能していないのではないかと推測しています。テンプレートでの PHP 解析が「出力」に設定されています。

         {exp:channel:entries}
           {categories}{if category_url_title == "{last_segment}"}<?php $category = '{category_id}'; ?>{/if}{/categories}
        {/exp:channel:entries}

        {exp:channel:entries category="<?php echo $category; ?>" dynamic="no" channel="products"}
          <h2>{title}</h2>
        {/exp:channel:entries}
4

1 に答える 1

2

気にしないでください!複雑にしないでおく:

ローのSeg2Cat

上記{last_segment_category_id}のすべてのコードを次のコードに置き換えます。

{exp:channel:entries category="{last_segment_category_id}" dynamic="no" channel="products"}
    <h2>{title}</h2>
{/exp:channel:entries}

コードが機能しない理由は、最初の部分で最初に EE を実行し、次に PHP で変数を保存し、次に PHP を続行して 2 番目の部分を設定し、次に EE を開始する必要があるためです。もう一度 PHP 変数を使用します。私が恐れている2の間でジャンプするのではなく、次から次へと続いています。

これを回避する別の方法は、埋め込みを利用することです。

1 番目のテンプレート:

{exp:channel:entries}
    {categories}{if category_url_title == "{last_segment}"}{embed="my-templates/2nd-template" category="{category_id}"}{/if}{/categories}
{/exp:channel:entries}

2 番目のテンプレート:

{exp:channel:entries category="{embed:category}" dynamic="no" channel="products"}
    <h2>{title}</h2>
{/exp:channel:entries}
于 2013-08-16T18:47:52.913 に答える