Je voudrais afficher 6 produits en vedette de ma boutique woocommerce sur mon modèle home-page.php. Après quelques recherches, j'ai trouvé que la bonne façon de le faire était via une boucle personnalisée, (je ne souhaite pas utiliser de shortcodes parce que je voudrais ajouter des classes supplémentaires pour le style, etc.) J'ai également constaté que la clé que woocommerce utilise pour le les produits en vedette sont «_en vedette». J'ai rassemblé le code ci-dessous pour afficher tous les produits que j'ai choisis pour être présentés dans mon magasin, mais cela ne fonctionne pas ... Toute aide est appréciée.
<?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
la source
la source
var_dump( get_meta_values( '_featured', 'product' );
endroit où la fonctionget_meta_values
est prise en charge par la fonction personnalisée expliquée dans cette réponseRéponses:
Modifiez vos arguments comme suit:
Si vous allez dans wp-content / plugins / woocommerce / includes / class-wc-shortcodes.php (@ 595), vous pouvez trouver comment cela se fait pour les shortcodes WC.
la source
Cela a changé dans WooCommerce 3.0. Ce n'est pas simplement une meta_query, mais inclut maintenant une tax_query. Les arguments sont maintenant:
Voir woocommerce / includes / class-wc-shortcodes.php
la source
wc_placeholder_img_src
au lieu dewoocommerce_placeholder_img_src
.Boucle de produits en vedette dans WooCommerce 3
la source
Selon le WooCommerce Wiki :
WooCommerce préconise d'utiliser
wc_get_products()
ouWC_Product_Query()
au lieu deWP_Query()
ouget_posts()
.J'ai écrit un article avec le code que j'ai utilisé pour réaliser ce que vous voulez ici: https://cfxdesign.com/create-a-custom-woocommerce-product-loop-the-right-way/
la source
Je sais que c'est assez ancien, mais je viens de partager une solution alternative ici et je pense que cela peut aussi aider ceux qui abordent ce sujet.
Au lieu d'utiliser
meta_query
outax_query
, vous pouvez également utiliser wc_get_featured_product_ids () :J'espère que ça aide!
la source
Basé sur: https://github.com/woocommerce/woocommerce/wiki/wc_get_products-and-WC_Product_Query
Je voudrais essayer:
boucle extérieure:
dans la boucle:
la source
si vous jetez un oeil dans la base de données dans le
wp_postmeta
tableau, vous verrezmeta_key
sera_featured
etmeta_value
serayes
ouno
alors au lieu de valeur0
ou1
écrireyes
ouno
la source
la source