Отображение записей по категориям в ExpressionEngine

Итак, я искал и нашел несколько сообщений, которые вроде как дают мне то, что я хочу, но это все еще не совсем работает. Этот пост показался наиболее близким к тому, чего я пытался достичь, и я построил свой код на его основе: http://expressionengine.com/forums/viewthread/168142/

Объяснять; У меня есть серия записей, каждая запись относится только к одной категории. Я хотел бы перечислить эти категории и под каждой категорией перечислить записи с одним из их настраиваемых полей. Вот так:

  • Категория 1

    • Item 1
    • Пункт 2
  • Категория 2

    • Item 1
    • Пункт 2

Итак, вот мой код в его нынешнем виде, в котором перечислены категории, но вообще нет ни одной записи:

{exp:channel:categories channel="faq-question" style="linear"}
    <section class="faq-category-container closed">
        <h1 class="faq-category-header"><a href="#">{category_name}</a></h1>
        <dl>
    {exp:query sql="

        SELECT title, url_title AS urlt, cat_id

        FROM exp_channel_titles

        NATURAL JOIN exp_category_posts

        WHERE channel_id = '7' AND cat_id = '{category_id}'

        ORDER BY title ASC"
    }
        {embed="jazz-camp/faq-cat-list" faqlink="{urlt}"}
    {/exp:query}
        </dl>
    </section><!-- end .faq-category -->
{/exp:channel:categories}

И встроенный шаблон, на который он ссылается:

{exp:channel:entries channel="faq-question" url_title="{embed:faqlink}"}<!-- entry -->
    <dt>{title}</dt>
    <dd>
        {faq_content}
    </dd>
{/exp:channel:entries}

Любая помощь будет принята с благодарностью!


person jeffbyrnes    schedule 10.01.2011    source источник


Ответы (3)


Это может быть очень простой пример того, что вам нужно:

{exp:channel:categories style="linear"}
  <h1>{category_name}:</h1> 
  {exp:channel:entries category="{category_id}" dynamic="no"}
    <p>{my_custom_field}</p>
  {/exp:channel:entries}
{/exp:channel:categories}
person hoosteeno    schedule 26.01.2011
comment
Да, это базовая версия того, что у меня получилось. Я создал еще один ответ, чтобы продемонстрировать, что я наконец использовал. - person jeffbyrnes; 28.01.2011
comment
сегодня вечером вы спасли нить моего здравомыслия, спасибо за публикацию. - person Julian; 22.06.2012
comment
Этот пример работает, когда вы добавляете dynamic=no к тегу channel:entries. - person Joan; 11.12.2013

Итак, вот что у меня получилось в итоге (благодаря некоторой помощи на EE boards):

{exp:channel:categories channel="faq-camp" style="linear" show_empty="no"}
    <section class="faq-category-container closed">
        <h1 class="faq-category-header"><a href="#">{category_name}</a></h1>
        <div class="faq-questions-container">
            <dl>
    {embed="jazz-camp/faq-cat-list" faqlink="{category_id}" faqparent="faq-camp"}
            </dl>
        </div><!-- end .faq-questions-container -->
    </section><!-- end .faq-category -->
{/exp:channel:categories}

А что касается встраивания, то оно выглядит так:

{exp:channel:entries channel="{embed:faqparent}" category="{embed:faqlink}" dynamic="no"}<!-- entries -->
    <dt>{title}</dt>
    <dd>
        {faq_answer}
    </dd>
{/exp:channel:entries}

Причина встраивания связана с тем, как все происходит в отношении получения правильных записей канала; просто наличие встроенного {exp:channel:entries} на странице не совсем сработало.

person jeffbyrnes    schedule 28.01.2011

Тег «Архив категорий» может быть вам полезен:

http://ellislab.com/expressionengine/user-guide/modules/channel/category_archive.html

person CJWEB    schedule 11.02.2014