WordPress在一个页面布局中包含wooccommerce产品


WordPress Include woocommerce-products in a one-page layout

所以我正在为客户端制作一个单页网站,其中包括一个网店。现在,每个WP页面组成一张幻灯片。这些幻灯片使用不同的主题模板,在其中一张名为"Shop"的幻灯片中,我想显示所有WooCommerce产品(它使用模板slide-shop.php。现在<ul class="products">得到了响应,但是它的内容是空的。如果你转到页面url(site.com/shop),所有产品都显示良好。

一页.php:

 <?php 
    $pages = get_pages(array('sort_column' => 'menu_order'));
    $i = 0;
    foreach ($pages as $page_data) {
        $page_ID = $page_data->ID;
        //$slug = $page_data->post_name;
        $content = apply_filters('the_content', $page_data->post_content);
        $title = $page_data->post_title;
        $template = get_page_template_slug( $page_ID );
        $i++; 
?>  
<section id="slide-<?php echo $i; ?>" class="slide cf">
    <div class="slide-wrap cf">         
        <div class="slide-con item cf" >            
            <?php include($template); ?>
        </div>
    </div>
</section>  
<?php 
    } /*end foreach*/
?>

幻灯片商店.php:

/*
 Template Name: Slide w. shop
 */
?> 
    <div class="slide-header cf">
        <h2><?php echo $title ?></h2>
    </div>
    <div class="slide-body cf">
        <div class="col d-1of2 cf">
            <?php echo $content ?>
        </div>
        <div class="col d-1of2 cf">
                <?php woocommerce_content(); ?>
        </div>
    </div>

woocommerce_content状态的文档:

此函数仅在可选的"wooccommerce.php"模板中使用。人们可以将其添加到他们的主题中,以添加基本的wooccommerce支持。而无需挂钩或修改核心模板。

因此,在您的情况下,解决方案将是更换

<?php woocommerce_content(); ?>

带有

<?php echo do_shortcode("[products]"); ?>

这应该会让产品出现在您的幻灯片中。