Un catálogo de productos: orden, tarjetas y precios
La página de la tienda de WooCommerce con tu diseño: arriba, un título y un par de líneas; debajo, el orden y las tarjetas de productos con precios. Los productos nuevos aparecen solos en el catálogo.
Qué obtienes
<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>- Title: Beans
- WooCommerce → Settings → Products → Shop page: Beans
- Ethiopia Yirgacheffe — $14.00
- Colombia Huila — $13.00
- Brazil Cerrado — $11.00
- House blend “Warm” — $12.00
Roasted on Mondays, shipped on Tuesdays.
Price: low to highUn comprador eligió «Price: low to high» y las tarjetas se reordenaron.
Paso a paso
Título e introducción
wp="post-title" y fld-area sobre las tarjetas leen la página de la tienda, la que está elegida en WooCommerce → Ajustes → Productos. El cliente la edita como cualquier página.
<h1 wp="post-title">Beans</h1> <p class="shop-hero__lead" fld-area="Shop lead">Roasted on Mondays, shipped on Tuesdays.</p>
Orden
<form wp="sort">con un<select wp="orderby">dentro. Los valores de las opciones son los criterios de orden de 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>
Tarjetas de productos
wp="products" en la cuadrícula; la primera tarjeta es el patrón. Dentro, el enlace, la imagen, el nombre y tres bloques de precio: el tema oculta por su cuenta los que sobran. Al lado,
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>
Números de página
wp-paginate en un bloque vacío después de la cuadrícula.
<div class="pagination" wp-paginate="mid_size=1"></div>
Lo importante
- Necesita WooCommerce.
- Si no hay un
taxonomy-product-cat.htmlaparte, las categorías de productos se abren con esta misma plantilla, ywp="products"muestra lo que hay en la categoría abierta. - En otra página, como la de inicio, los productos salen con
wp-product-query.
Errores frecuentes
El registro de la generación es la pestaña «Registros» de tu proyecto en themeforge.pro; la revisión gratuita del marcado muestra los mismos avisos.
<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 en lugar de wp="products" hace su propia selección: ni el orden ni las categorías de productos le afectan. El registro no dice nada.
<div class="beans" wp="products">
<div class="bean-card">
<h3 wp="post-title">Ethiopia Yirgacheffe</h3>
</div>
</div>wp="products" toma lo que WooCommerce ha seleccionado para esta página.
<select class="sort__select" wp="orderby">
<option value="price">Price: low to high</option>
</select>Una lista de orden sin su propio formulario: la generación anota el atributo en el registro y la lista no hace nada.
<form class="sort" wp="sort">
<select class="sort__select" wp="orderby">
<option value="price">Price: low to high</option>
</select>
</form>La lista dentro de <form wp="sort">.