2016-05-16 6 views
-2

Iveは新しいページテンプレートを作成し、woocommerce archive-product.phpをコピーしましたが、ショップページが動作している間はカスタムページはありません。ショップと同じように機能する方法はありますかページ?それが視覚的な作曲家や普通のコンテンツから何かを引っ張ってこないことに気づいた。woocommerce on page templates

答えて

0

カスタムウーモ商店のテンプレート(アーカイブ製品)をご希望の方は、サンプルテンプレートをご利用ください。

<?php 

if (! defined('ABSPATH')) { 
    exit; // Exit if accessed directly 
} 

get_header('shop'); ?> 

<?php 
/** 
* woocommerce_before_main_content hook 
* 
* @hooked woocommerce_output_content_wrapper - 10 (outputs opening divs for the content) 
* @hooked woocommerce_breadcrumb - 20 
*/ 
do_action('woocommerce_before_main_content'); ?> 

<?php if (apply_filters('woocommerce_show_page_title', true)) : ?> 

    <h1 class="page-title"><?php woocommerce_page_title(); ?></h1> 

<?php endif; ?> 

<?php do_action('woocommerce_archive_description'); ?> 

<?php 

global $post, $product; 

$args = array( 
    'post_type'=>'product', 
    'posts_per_page'=>-1, 
    'orderby'=>'date', 
    'order'=>'ASC'  
); 
// get all the posts (here it would be all the wc products) 
$posts = get_posts($args); 

/** 
* woocommerce_before_shop_loop hook 
* 
* @hooked woocommerce_result_count - 20 
* @hooked woocommerce_catalog_ordering - 30 
*/ 
do_action('woocommerce_before_shop_loop'); 

if(count($posts) > 0) { 

    woocommerce_product_loop_start(); 

    woocommerce_product_subcategories(); 

    foreach($posts as $post) { 
     // this will put the current post into the GLOBAL $post object 
     setup_postdata($post); 
     // this will put the product data into GLOBAL $product object 
     wc_setup_product_data($post); ?> 

     <!-- Now you have valid WP loop, put the content-product template here --> 
     <?php wc_get_template_part('content', 'product'); ?> 

     <?php 
    } 

    woocommerce_product_loop_end(); 

} else { 
    wc_get_template('loop/no-products-found.php'); 
} 

/** 
* woocommerce_after_shop_loop hook 
* 
* @hooked woocommerce_pagination - 10 
*/ 
do_action('woocommerce_after_shop_loop'); 

/** 
* woocommerce_sidebar hook 
* 
* @hooked woocommerce_get_sidebar - 10 
*/ 
do_action('woocommerce_sidebar'); 

get_footer('shop'); ?> 
+0

これは本当に便利です。しかし、それに沿った質問だけで、製品はうまくロードされますが、どのページのコンテンツにも読み込まれません。たとえば、読み込まれていないそのページのビジュアルコンポーザーにいくつかのコンポーネントがあります。それらを表示させるにはwpループが必要ですか? –

+0

はい、可能です。 'get_footer( 'shop')の前に' the_content(); 'を入れてください、 – Sark

+0

あなたの命の恩人に感謝します。 –