I would like to have a page like page.php to display the content of the shop page. How can i do it?

I copied everything from woocommerce/archive-product.php in to page.php but nothing is beeing displayed.

1 Answer 1


Personally i would create a custom template and not use page.php and add a simply product loop

Quick break down

create new template called customshop.php

<?php /* Template Name: Custom Shop */ ?> 

add your shop loop

<ul class="products">
        $args = array(
            'post_type' => 'product',
            'posts_per_page' => 12
        $loop = new WP_Query( $args );
        if ( $loop->have_posts() ) {
            while ( $loop->have_posts() ) : $loop->the_post();
                wc_get_template_part( 'content', 'product' );
        } else {
            echo __( 'No products found' );

create your new page in pages and change your template to your new page in the drop down

logic behind adding the loop as a custom template is purely for neatness and you may want a variety of custom templates and adding customshop.php means you can add lots more and you are keeping your structure neat

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.