Zum Inhalt

Loops & Filter

Überblick

Mit Loops & Filter legst du im Backend wiederverwendbare Listen (Loops) und passende Filter an. Die Ausgabe erfolgt per Shortcode, z. B. in Seiten, Beiträgen oder Modulen.

Shortcodes im Backend anlegen

  1. Backend → Loops & Filter → Neu anlegen
  2. Titel vergeben (nur für die Übersicht)
  3. Im Tab Loop den Shortcode kopieren (z. B. [twtheme-loop id="123"])
  4. Im Bereich Shortcode Builder die gewünschten Parameter je Zeile eintragen
    Format: parameter="wert"
  5. Im Tab Filter analog den Filter‑Shortcode kopieren (z. B. [twtheme-filter id="123"])
  6. Optional unter Optionen globale Standardwerte setzen (werden vererbt)

Platzhalter im Loop‑Builder

Im Loop‑Builder kannst du Platzhalter verwenden, um Werte später im Shortcode zu setzen:

  • Builder‑Zeile: posts_per_page="%anzahl%"
  • Shortcode: [twtheme-loop id="123" args="anzahl:6"]

Mehrere Werte werden mit Komma getrennt: args="anzahl:6,order:ASC".

Shortcode: Loop

Basis:

  • [twtheme-loop id="123"]
  • Optional: args="key:value,key2:value2" für Platzhalter

Parameter (Loop)

Parameter Standard Beschreibung Beispiel
id Pflicht. ID des Loops‑Eintrags. id="123"
args Werte für Platzhalter aus dem Builder. args="anzahl:6,order:ASC"
post_type Post Types, kommasepariert. post_type="post,project"
posts_per_page 12 Anzahl Beiträge. posts_per_page="9"
orderby date Sortierung. orderby="title"
order DESC Sortierrichtung. order="ASC"
style default Loop‑Template‑Variante. style="magazine"
pagination aus Optionen Pagination‑Modus. pagination="pages"
paged aus URL Aktuelle Seite. paged="2"
nopaging false Pagination komplett aus. nopaging="true"
show_message true Leere‑Liste‑Hinweis anzeigen. show_message="false"
hide_row false Row‑Wrapper ausblenden. hide_row="true"
column_class CSS‑Klasse je Spalte. column_class="col-md-4"
loop_column_gutter aus Optionen Gutter für Row. loop_column_gutter="1.5rem"
s Suche. s="Beispiel"
post_status publish Statusfilter. post_status="publish"
fields WP_Query‑Feld‑Ausgabe. fields="ids"
users Autoren‑IDs. users="12,34"
roles Autoren‑Rollen. roles="editor,author"
years Jahre‑Filter. years="2023,2024"
taxonomy Taxonomien (Slugs). taxonomy="category,post_tag"
taxonomy_relation AND Verbindung mehrerer Taxonomien. taxonomy_relation="OR"
taxonomy_operator IN Standard‑Operator. taxonomy_operator="NOT IN"
taxonomy_{tax}_field term_id Feld für Taxonomie. taxonomy_category_field="slug"
taxonomy_{tax}_operator IN Operator je Taxonomie. taxonomy_category_operator="AND"
taxonomy_{tax}_include_children false Unterbegriffe einbeziehen. taxonomy_category_include_children="true"
taxonomy_{tax}_exclude Ausgeschlossene Terms. taxonomy_category_exclude="12,34"
taxonomy_limit_{tax}_by_term_id Begrenzung auf Term‑IDs. taxonomy_limit_category_by_term_id="12,34"
meta_query_relation Relation für Meta‑Query. meta_query_relation="AND"
meta_query_1_key Meta‑Key (1..n). meta_query_1_key="price"
meta_query_1_value Meta‑Value (1..n). meta_query_1_value="100"
meta_query_1_compare Vergleich (1..n). meta_query_1_compare=">="

Hinweis: Die Anzahl der Meta‑Query‑Blöcke wird in den Optionen über Anzahl Query Argumente gesteuert.

Shortcode: Filter

Basis:

  • [twtheme-filter id="123"]

Dieser Shortcode erzeugt intern einen twtheme-filter-custom‑Shortcode mit allen Builder‑Parametern.

Parameter (Filter)

Parameter Standard Beschreibung Beispiel
id Pflicht. ID des Filter‑Eintrags. id="123"
post_type Post Types, kommasepariert. post_type="post,project"
post_status publish Statusfilter. post_status="publish"
taxonomy Taxonomien, kommasepariert. taxonomy="category,post_tag"
years Jahresfilter (Liste oder -1). years="2022,2023"
posts_per_page 12 Anzahl Ergebnisse. posts_per_page="9"
type dropdown Filter‑Layout. type="list"
accordion-on-mobile false Mobile auf Akkordeon erzwingen. accordion-on-mobile="true"
filter-multiple simple Mehrfachauswahl aktivieren. filter-multiple="multiple"
column_class col-auto Spaltenklasse. column_class="col-md-4"
column_gutter Spaltenabstand (Gutter). column_gutter="1.5rem"
filter_class CSS‑Klasse für Filter. filter_class="is-pill"
dropdown_btn_class CSS‑Klasse Dropdown‑Button. dropdown_btn_class="btn btn-secondary"
search false Suchfeld aktivieren. search="true"
search_btn_text Search Button‑Text. search_btn_text="Suchen"
search_btn_class CSS‑Klasse Such‑Button. search_btn_class="btn btn-primary"
search_input_placeholder Search… Platzhalter. search_input_placeholder="Suche"
search_input_class CSS‑Klasse Such‑Input. search_input_class="form-control"
search_position last Position des Suchfelds. search_position="first"
taxonomy_{tax}_orderby name Sortierung der Terms. taxonomy_category_orderby="count"
taxonomy_{tax}_order ASC Sortierrichtung Terms. taxonomy_category_order="DESC"
taxonomy_{tax}_exclude Terms ausschließen. taxonomy_category_exclude="12,34"
taxonomy_limit Begrenzte Taxonomien. taxonomy_limit="category"
taxonomy_limit_{tax}_by_term Begrenzung per Term‑ID. taxonomy_limit_category_by_term="12,34"
custom_filter_1 Eigener Filter‑Titel. custom_filter_1="Nur Featured"
custom_filter_1_value Wert für den Filter. custom_filter_1_value="1"
meta_query_relation Relation für Meta‑Query. meta_query_relation="AND"
meta_query_1_key Meta‑Key (1..n). meta_query_1_key="price"
meta_query_1_value Meta‑Value (1..n). meta_query_1_value="100"
meta_query_1_compare Vergleich (1..n). meta_query_1_compare=">="

Anwendung im Frontend

Filter und Loops werden per Shortcode in Seiten/Blöcken eingebunden. Besucher können damit Inhalte filtern und paginieren.

Entwicklertipps

  • Loop‑Templates liegen unter template-parts/loops/loop-{style}.php.
  • Pagination‑Modi: pages, infinite-loop-auto, infinite-loop-click, false.

Twtheme Hooks & Filter

Hook/Filter Typ Parameter Zweck
twtheme_loops_filter_fields Filter ($form_data) Felder im Loop/Filter‑Backend ergänzen.
loops_filter_option_fields Filter ($form_data) Optionen unter „Loops & Filter Einstellungen“ erweitern.
twtheme_filter_query_args Filter ($query_args) WP_Query‑Args vor der Abfrage anpassen.
twtheme_loop_before_content Action ($args) Hook vor der Loop‑Ausgabe (z. B. Wrapper, Hinweis).
twtheme_paginate_link Filter ($page, $args) Pagination‑Links anpassen.
twtheme_filter_before Filter ($html, $args) HTML vor den Filter‑Elementen.
twtheme_filter_label_before_title Filter ($html, $type, $title, $data) HTML vor dem Filter‑Titel.
twtheme_filter_label_title Filter ($html) Filter‑Titel‑Markup anpassen.
twtheme_filter_label_after_title Filter ($html, $type, $title, $data) HTML nach dem Filter‑Titel.
twtheme_filter_is_filtered_class Filter ($class) CSS‑Klasse für aktivierte Filter.
twtheme_filter_clear_btn Filter ($html, $filter_type) Reset‑Icon/Button anpassen.
twtheme_filter_before_end Filter ($html) HTML vor dem Ende eines Filter‑Blocks.
twtheme_filter_before_options Filter ($html) HTML vor den Optionen.
twtheme_filter_after_options Filter ($html) HTML nach den Optionen.