Zum Inhalt springen
themeforge
DE
Kostenlos starten
Menü
  1. Startseite
  2. Rezepte für Abschnitte
  3. Produktkatalog
Rezept 4 Schritte

Der Produktkatalog: Sortierung, Karten und Preise

Die Shop-Seite von WooCommerce in deinem Layout: oben eine Überschrift und ein paar Zeilen, darunter die Sortierung und Produktkarten mit Preisen. Neue Produkte erscheinen von selbst im Katalog.

Das Ergebnis

Markup archive-product.html
<body wp-fields-group="Shop">
<header class="shop-hero">
  <h1 wp="post-title">Beans</h1>
  <p class="shop-hero__lead" fld-area="Shop lead">Roasted on Mondays, shipped on Tuesdays.</p>
</header>
<form class="sort" wp="sort">
  <select class="sort__select" wp="orderby">
    <option value="menu_order">Default</option>
    <option value="price">Price: low to high</option>
  </select>
</form>
<div class="beans" wp="products">
  <div class="bean-card">
    <a href="#" wp="post-link"><img src="images/bean.jpg" alt="" wp="post-image"></a>
    <h3><a href="#" wp="post-title-link">Ethiopia Yirgacheffe</a></h3>
    <div class="bean-card__prices">
      <span wp="product-price">$14.00</span>
      <span wp="product-price-sale">$12.00</span>
      <span class="is--old" wp="product-price-regular">$14.00</span>
    </div>
  </div>
</div>
<div class="beans__empty" wp="no-results">No beans match.</div>
<div class="pagination" wp-paginate="mid_size=1"></div>
</body>
Im Adminbereich Pages → Beans
Pages → Beans
  • Title: Beans
  • WooCommerce → Settings → Products → Shop page: Beans
Shop
Shop lead Roasted on Mondays, shipped on Tuesdays.
Products
  • Ethiopia Yirgacheffe — $14.00
  • Colombia Huila — $13.00
  • Brazil Cerrado — $11.00
  • House blend “Warm” — $12.00
Auf der Website die Shop-Seite
Beans

Roasted on Mondays, shipped on Tuesdays.

Price: low to high
Brazil Cerrado $11.00
House blend “Warm” $12.00
Colombia Huila $13.00
1 2 →

Ein Käufer hat „Price: low to high“ gewählt, und die Karten wurden neu sortiert.

Schritt für Schritt

  1. Überschrift und Einleitung

    wp="post-title" und fld-area über den Karten lesen die Shop-Seite, also die Seite, die unter WooCommerce → Einstellungen → Produkte gewählt ist. Dein Kunde bearbeitet sie wie eine normale Seite.

    <h1 wp="post-title">Beans</h1>
    <p class="shop-hero__lead" fld-area="Shop lead">Roasted on Mondays, shipped on Tuesdays.</p>
  2. Sortierung

    <form wp="sort"> mit einem <select wp="orderby"> darin. Die Werte der Optionen sind die Sortierungen von WooCommerce: menu_order, price, price-desc, date, popularity, rating.

    <form class="sort" wp="sort">
      <select class="sort__select" wp="orderby">
        <option value="menu_order">Default</option>
        <option value="price">Price: low to high</option>
      </select>
    </form>
  3. Produktkarten

    wp="products" am Raster, die erste Karte ist die Vorlage. Darin stehen Link, Bild, Name und drei Preisblöcke: Die überzähligen blendet das Theme selbst aus. Daneben wp="no-results".

    <div class="beans" wp="products">
      <div class="bean-card">
        <a href="#" wp="post-link"><img src="images/bean.jpg" alt="" wp="post-image"></a>
        <h3><a href="#" wp="post-title-link">Ethiopia Yirgacheffe</a></h3>
        <div class="bean-card__prices">
          <span wp="product-price">$14.00</span>
          <span wp="product-price-sale">$12.00</span>
          <span class="is--old" wp="product-price-regular">$14.00</span>
        </div>
      </div>
    </div>
    <div class="beans__empty" wp="no-results">No beans match.</div>
  4. Seitenzahlen

    wp-paginate an einem leeren Block nach dem Raster.

    <div class="pagination" wp-paginate="mid_size=1"></div>

Worauf es ankommt

  • Braucht WooCommerce.
  • Gibt es kein eigenes taxonomy-product-cat.html, öffnen sich die Produktkategorien mit demselben Template, und wp="products" zeigt die Produkte der geöffneten Kategorie.
  • Produkte auf einer anderen Seite, etwa der Startseite, gibt wp-product-query aus.

Typische Fehler

Das Build-Protokoll ist der Tab „Logs“ deines Projekts auf themeforge.pro; die kostenlose Markup-Prüfung zeigt dieselben Hinweise.

So nicht
<div class="beans" wp-query="'post_type'=>'product','posts_per_page'=>12">
  <div class="bean-card">
    <h3 wp="post-title">Ethiopia Yirgacheffe</h3>
  </div>
</div>

wp-query statt wp="products" zeigt eine eigene Auswahl: Sortierung und Produktkategorien wirken nicht darauf. Das Protokoll meldet nichts.

So geht’s
<div class="beans" wp="products">
  <div class="bean-card">
    <h3 wp="post-title">Ethiopia Yirgacheffe</h3>
  </div>
</div>

wp="products" liefert die Produkte, die WooCommerce für diese Seite ausgewählt hat.

So nicht
<select class="sort__select" wp="orderby">
  <option value="price">Price: low to high</option>
</select>

Eine Sortierliste ohne ihr Formular: Der Build schreibt das Attribut ins Protokoll, und es bewirkt nichts.

So geht’s
<form class="sort" wp="sort">
  <select class="sort__select" wp="orderby">
    <option value="price">Price: low to high</option>
  </select>
</form>

Die Liste in <form wp="sort">.

Attribute in diesem Rezept

Wenn du so weit bist

Sieh dir den WordPress-Adminbereich deiner Website an, bevor du zahlst.