Если выражение на сегменте eq url_title - странное поведение

Моя цель состояла в том, чтобы отметить текущую/активную статью в списке. Код выглядит так:

    {exp:channel:entries channel="products" category="{segment_3_category_id}" orderby="title" sort="asc" status="open" paginate="bottom" dynamic="no"} {if switchee_no_results}<div class="">

    No entries yet.

    </div>{/if}
  • {title}
  • {/exp:channel:entries}

но класс не добавлен в соответствующий элемент списка.

Затем я решил проверить, работает ли оператор IF, и сделал простой пробный запуск

Seg: {segment_4} - URL: {url_title}
{if segment_4=="{url_title}"}FOUND!{/if}

никакого результата не найдено, даже если бы был правильный матч Seg to Url.

Тогда я проверил, нет ли результатов

Seg: {segment_4} - URL: {url_title}
{if segment_4=="{url_title}"}FOUND!{if:else}NOT FOUND{/if}

и у меня есть правильные матчи.

Вы знаете, что происходит?

благодаря

2
Код OP обновлен соответствующим тегом - некоторые из моих тестов заставили его работать. Чтобы быть ясным - я выбираю списки продуктов на основе категории из сегмента 3, а сегмент 4 - это продукт url_title
добавлено автор Bernard Dy, источник
Ну, странно, но это работает. Вы можете опубликовать его в качестве ответа. Благодаря!
добавлено автор Bernard Dy, источник
При выборе канала: записи вы выбираете продукты по категориям сегмента 3. В тесте вы сравниваете категорию на сегменте 4. Правильно ли это?
добавлено автор Gabriel Brito, источник
Может быть, вам нужно это использовать? {if "{segment_4}" == "{url_title}"} ? Поэтому помещаем segment_4 между кавычками.
добавлено автор Gabriel Brito, источник

1 ответы

Вы сравниваете две переменные, где вы сравниваете один с кавычками "" и один без. Так что, вероятно, дает несоответствие, поскольку оно сравнивает две переменные как разные типы.

Поэтому измените это:

{if segment_4=="{url_title}"} class="current"{/if}

в:

{if "{segment_4}"=="{url_title}"} class="current"{/if}

вероятно, это будет работать (не проверено).

{if {segment_4}=={url_title}} class="current"{/if}
1
добавлено