Chciałbym wyświetlić 6 polecanych produktów z mojego sklepu woocommerce w moim szablonie home-page.php. Po kilku badaniach odkryłem, że właściwym sposobem na to było skorzystanie z niestandardowej pętli (nie chcę używać skrótów, ponieważ chciałbym dodać dodatkowe klasy do stylizacji itp.). Stwierdziłem również, że klucz używany przez woocommerce do polecane produkty to „_featured”. Złożyłem poniższy kod, aby wyświetlić wszystkie produkty, które wybrałem jako produkty polecane w moim sklepie, ale to nie działa ... Każda pomoc jest mile widziana.
<?php
$args = array(
'post_type' => 'product',
'stock' => 1,
'showposts' => 6,
'orderby' => 'date',
'order' => 'DESC' ,
'meta_query' => array(
array(
'key' => '_featured',
'value' => 0,
'compare' => '>',
'type' => 'numeric'
)
)
);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post(); global $product; ?>
<li>
<?php
if ( has_post_thumbnail( $loop->post->ID ) )
echo get_the_post_thumbnail( $loop->post->ID, 'shop_catalog' );
else
echo '<img src="' . woocommerce_placeholder_img_src() . '" alt="Placeholder" width="65px" height="115px" />';
?>
<h3><?php the_title(); ?></h3>
<?php
echo $product->get_price_html();
woocommerce_template_loop_add_to_cart( $loop->post, $product );
?>
</li>
<?php
endwhile;
wp_reset_query();
?>
loop
woocommerce
featured-post
steamfunk
źródło
źródło
var_dump( get_meta_values( '_featured', 'product' );
którego funkcjaget_meta_values
jest obsługiwana przez funkcję niestandardową wyjaśnioną w tej odpowiedziOdpowiedzi:
Zmień argumenty tak, aby wyglądały następująco:
Jeśli przejdziesz do wp-content / plugins / woocommerce / include / class-wc-shortcodes.php (@ 595), możesz dowiedzieć się, jak to zrobić dla skrótów WC.
źródło
Zmieniło się to w WooCommerce 3.0. To nie jest po prostu meta_query, ale teraz obejmuje także tax_query. Argumenty są teraz:
Zobacz woocommerce / include / class-wc-shortcodes.php
źródło
wc_placeholder_img_src
zamiastwoocommerce_placeholder_img_src
.Polecane produkty Pętla w WooCommerce 3
źródło
Według Wiki WooCommerce :
WooCommerce zaleca używanie
wc_get_products()
lubWC_Product_Query()
zamiastWP_Query()
lubget_posts()
.Napisałem post z kodem, którego użyłem, aby osiągnąć to, czego chcesz tutaj: https://cfxdesign.com/create-a-custom-woocommerce-product-loop-the-right-way/
źródło
Wiem, że jest to dość stare, ale właśnie podzieliłem się tutaj alternatywnym rozwiązaniem i myślę, że może pomóc również osobom zajmującym się tym tematem.
Zamiast używać
meta_query
lubtax_query
możesz także użyć wc_get_featured_product_ids () :Mam nadzieję, że to pomoże!
źródło
Na podstawie: https://github.com/woocommerce/woocommerce/wiki/wc_get_products-and-WC_Product_Query
Spróbowałbym:
zewnętrzna pętla:
w pętli:
źródło
jeśli spojrzeć w bazie danych w
wp_postmeta
tabeli widaćmeta_key
będzie_featured
imeta_value
będzieyes
albono
tak zamiast wartości0
lub1
zapisuyes
lubno
źródło
źródło