3

カテゴリ一覧ページを含む構造ベースのサイトを持っています。例: http://www.mysite.com/products/category/tools/hammers . 当然、Zoo Triggersを使用してエントリ リストを出力しています。

私の問題は、各カテゴリ リスト ページに固有の SEO メタ データが必要なため、タイトル、キーワード、および説明のカスタム フィールドを設定することです。残念ながら、Zoo Triggers にはカスタム カテゴリ フィールド用の変数がなく、{exp:channel:category_heading}タグは Zoo Triggers の URL では機能しません。

魔法のGWCode Categories pluginを使用できると思いましたが、現在のカテゴリのみのデータを表示する方法がわかりません。

これを実現する方法について何か提案はありますか? ありがとう。

4

1 に答える 1

5

これには、おそらくカスタム クエリが必要です。EE はそのコア データとカスタム カテゴリ データを別々のテーブルに格納するため、これはネイティブ クエリ モジュールにとっては少し扱いに​​くいため、Rob Sanchez のActiveRecord プラグインを使用する傾向があります。私はこれを広範囲にテストしていませんが、次のスニペットは大まかな場所にあるはずです:

{exp:activerecord
    select="d.field_id_1 as seo_field_one, d.field_id_2 as seo_field_two"
    from="category_field_data as d"
    join="categories as c"
    on="c.cat_id = d.cat_id"
    where[a]="c.cat_url_title = '{triggers:last_segment}'"
    where[b]="c.group_id = '1'"
}
    <p>Field one: {seo_field_one}</p>
    <p>Field two: {seo_field_two}</p>
{/exp:activerecord}

CodeIgniter の Active Record クラスに特に精通していない場合、これは次のことを行っています。

  • 列名に基づいてカスタム カテゴリ フィールドを選択する (例: field_id_1)、およびテンプレート内で使用するエイリアスを作成する (例: ) {seo_field_one}
  • categoriesとテーブル間の結合を作成category_field_dataして、categorys テーブルの値に基づいて field_data テーブルのデータを取得できるようにします。
  • 結果セットを、URL タイトルが最後の URL セグメントと一致し、カテゴリ グループ 1 に属するカテゴリに制限します。

これをテンプレートに実装するには、選択ステートメントを調整して、正しい列からデータを取得group_idし、カテゴリ グループと一致するように微調整する必要があります。最後の URL セグメントのデータを取得する必要があると想定していますが、必要に応じて簡単に調整することもできます。

于 2012-10-26T17:52:41.113 に答える