Shopify Liquid: If Statement

Shopify Liquid: If Statement

I am trying to enable a div class based on when a user views certain web page eg: blog, index or ../page/webpage

The code is like this:

{% unless template contains "index" and settings.slideshow_enabled %}
   <div class="container main content">
{% endunless %}

That "container main content" shows an image behind the nav bar. On other pages, the image starts from below the nav bar. A clear example here:

I want to have that same homepage, link the link above, on selected pages or template:

{% if template == "index" and template == "page" and settings.slideshow_enabled %}
   <div class="container main content">
{% endif %}

So far nothing I have tried worked. Any tips?

Edited:

I can't answer my own question as yet but this worked with a tweak to the javascript:

{% unless template contains "page" or template contains "index" and settings.slideshow_enabled %} 
 <div class="container main content"> 
{% endunless %}
5

1 Answer

Multiple conditions in if statements don't work so well in liquid. See a similar question here.

One option is to use nested if statements:

{% if template == "index" or template == "page" %}
  {% if settings.slideshow_enabled %}
    <div class="container main content">...</div>
  {% endif %}
{% endif %}

Or something like this:

{% if template == "index" or template == "page" %}
  {% assign correct_template = true %}
{% endif %}
{% if correct_template and settings.slideshow_enabled %}
  <div class="container main content">...</div>
{% endif %}
4

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

David Miller
Author

David Miller

David Miller brings 15 years of experience in global economics, personal finance strategy, and market dynamics. He specializes in turning complex economic trends into actionable insights for everyday readers.