Types
Flüssige Objekte können einer von sechs Arten angehören. Sie können Liquid-Variablen mit Zuweisungs- oder Erfassungs-Tags initialisieren.
Inhalt
- String
- Number
- Boolean
- Nil
- Array
- Accessing items in arrays
- Accessing specific items in arrays
- Initializing arrays
- EmptyDrop
- Checking for emptiness
- EmptyDrop attributes
String
Zeichenketten werden deklariert, indem der Wert einer Variablen in einfache oder doppelte Anführungszeichen eingeschlossen wird.
{% assign my_string = "Hallo Welt!" %}
Number
Zu den Zahlen gehören Gleitkommazahlen und ganze Zahlen.
{% assign my_int = 25 %} {% assign my_float = 39.756 %}
Boolean
Booleans sind entweder true
oder false
. Bei der Deklaration eines booleschen Wertes sind keine Anführungszeichen erforderlich.
{% assign foo = true %} {% assign bar = false %}
Nil
Nil ist ein spezieller leerer Wert, der zurückgegeben wird, wenn Liquid-Code keine Ergebnisse hat. Es handelt sich nicht um eine Zeichenkette mit den Zeichen "nil".
Nil wird in den Bedingungen von if
-Blöcken und anderen Liquid-Tags, die den Wahrheitsgehalt einer Aussage prüfen, als falsch behandelt.
Im folgenden Beispiel druckt Liquid den Text nicht aus, wenn keine Trackingnummer vorhanden ist (d. h. fulfillment. tracking_numbers
gibt nil
zurück):
{% if fulfillment.tracking_numbers %} Es gibt eine Verfolgungsnummer. {% endif %}
Tags oder Ausgaben, die nil
zurückgeben, werden nicht auf der Seite ausgegeben.
Tracking number: {{ fulfillment.tracking_numbers }}
Tracking number:
Array
Arrays enthalten Listen von Variablen beliebigen Typs.
Accessing items in arrays
Um auf alle Elemente in einem Array zuzugreifen, können Sie mit einem for- oder tablerow-Tag eine Schleife durch jedes Element des Arrays ziehen.
{% for tag in product.tags %} {{ tag }} {% endfor %}
Verkauf Sommer Frühling Großhandel
Accessing specific items in arrays
Sie können die eckige Klammer [
]
verwenden, um auf ein bestimmtes Element in einem Array zuzugreifen. Die Array-Indizierung beginnt bei Null.
<!-- if product.tags = "verkauf", "frühling", "sommer", "wholeverkauf" --> {{ product.tag[0] }} {{ product.tag[1] }} {{ product.tag[2] }}
verkauf frühling sommer
Initializing arrays
Sie können Arrays nicht nur mit Liquid initialisieren.
Sie können jedoch den Split-Filter verwenden, um eine einzelne Zeichenfolge in ein Array von Teilzeichenfolgen zu zerlegen.
EmptyDrop
Ein EmptyDrop-Objekt wird zurückgegeben, wenn Sie versuchen, auf ein gelöschtes Objekt (z. B. eine Seite oder einen Beitrag) über dessen Handle zuzugreifen. Im folgenden Beispiel sind page_1
, page_2
und page_3
allesamt EmptyDrop-Objekte.
{% assign variable = "hello" %} {% assign page_1 = pages[variable] %} {% assign page_2 = pages["does-not-exist"] %} {% assign page_3 = pages.this-handle-does-not-exist %}
Checking for emptiness
Sie können prüfen, ob ein Objekt existiert oder nicht, bevor Sie auf eines seiner Attribute zugreifen.
{% unless pages.about == empty %} <!-- Dies wird nur gedruckt, wenn die Seite mit dem Handle "about" nicht leer ist --> <h1>{{ pages.about.title }}</h1> <div> {{ pages.about.content }} </div> {% endunless %}
Wenn Sie nicht zuerst prüfen, ob die Datei leer ist, kann Liquid leere HTML-Elemente ausgeben:
<h1></h1> <div></div>
Sie können auch mit Sammlungen prüfen, ob sie leer sind:
{% unless Sammlungen.frontpage == empty %} {% for product in Sammlungen.frontpage.products %} {% include "product-grid-item" %} {% else %} <p>We have a "frontpage" collection, but it's empty.</p> {% endfor %} {% endunless %}
EmptyDrop attributes
EmptyDrop-Objekte haben nur ein Attribut, empty?
, was immer wahr ist.
Vorhandene Sammlungen und Seiten haben keine empty?
Attribut. Ihre empty?
ist "falsy", was bedeutet, dass der Aufruf innerhalb einer if
-Anweisung false zurückgibt. Bei Verwendung einer unless
-Anweisung für bestehende Sammlungen und Seiten, empty?
wird true
zurückgeben.
Wenn Sie prüfen müssen, ob ein Tropfen leer ist, sollten Sie nicht die empty?
verwenden Sie eine bedingte Anweisung, um zu prüfen, ob der Tropfen gleich empty
ist.