Якщо заява на сегмент 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}

ніякого результату не знайдено, тож правильний сегмент для 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
додано