Intereting Posts
Дополнительные поля в рейтинговой системе Woocommerce Объект класса WP_Error не может быть преобразован в строку Название не работает как ссылка Поле «Дополнительные настраиваемые поля»: как эхо-метку, а не значение? Добавление пользовательского кода на сайт WordPress Получать сообщения из другого раздела в отдельной отдельной странице Где я могу создать свою собственную функцию в wp-admin Как добавить параметры настройки с помощью плагинов / кодирования на странице продукта магазина Woocommerce Установка почтовых метаданных в случайное значение во время перехода статуса должности / публикации Создать страницу «Все сообщения» или «Архивы» в WordPress 3.0? Динамически создавать термины в таксономии, когда публикуется пользовательский тип публикации. Почти готово! Multi-эскизы ничего не возвращают Шрифт базы данных WordPress / Сортировка Зачем мне отменять регистрацию jquery? Лучший способ настроить «nav-menu-template.php» для добавления <input>, если «link_before» – «checkbox»,

Страница пользовательской категории Woocommerce с разбивкой на страницы

Я хочу создать пользовательский шаблон категории woocommerce. я не уверен, что делаю это правильно или нет. Что я сделал, я отредактировал файл taxonomy-product_cat.php . ,

В моем коде я могу получить миниатюрное изображение категории, описание категории, 5 продуктов. но теперь вопрос не зависит от категории, которую я просматриваю, я всегда вижу продукты той же категории. Это значит, что запрос категории неверен. Также я хочу добавить разбивку на страницы. <Предыдущая 1,2,3 .. Следующая>

Ниже приведен код

 <?php /** * The Template for displaying products in a product category. Simply includes the archive template. * * Override this template by copying it to yourtheme/woocommerce/taxonomy-product_cat.php * * @author WooThemes * @package WooCommerce/Templates * @version 1.6.4 */ 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' ); ?> <div class="category-header"> <div class="cat-thumb"> <?php // verify that this is a product category page if (is_product_category()){ global $wp_query; // get the query object $cat = $wp_query->get_queried_object(); // get the thumbnail id user the term_id $thumbnail_id = get_woocommerce_term_meta( $cat->term_id, 'thumbnail_id', true ); // get the image URL $image = wp_get_attachment_url( $thumbnail_id ); // print the IMG HTML echo '<img src="'.$image.'" alt="" />'; } ?></div> <?php if ( apply_filters( 'woocommerce_show_page_title', true ) ) : ?> <h1 class="page-title"> <?php woocommerce_page_title(); ?></h1> <?php endif; ?> <?php /** * woocommerce_archive_description hook * * @hooked woocommerce_taxonomy_archive_description - 10 * @hooked woocommerce_product_archive_description - 10 */ do_action( 'woocommerce_archive_description' ); ?> </div> <ul class="cat-products"> <?php $args = array( 'post_type' => 'product', 'paged' => $paged, 'posts_per_page' => 5 ); $loop = new WP_Query( $args ); if ( $loop->have_posts() ) { while ( $loop->have_posts() ) : $loop->the_post(); ?> <li <?php post_class( $classes ); ?>> <?php do_action( 'woocommerce_before_shop_loop_item' ); ?> <a href="<?php the_permalink(); ?>"> <?php /** * woocommerce_before_shop_loop_item_title hook * * @hooked woocommerce_show_product_loop_sale_flash - 10 * @hooked woocommerce_template_loop_product_thumbnail - 10 */ do_action( 'woocommerce_before_shop_loop_item_title' ); /** * woocommerce_shop_loop_item_title hook * * @hooked woocommerce_template_loop_product_title - 10 */ do_action( 'woocommerce_shop_loop_item_title' ); /** * woocommerce_after_shop_loop_item_title hook * * @hooked woocommerce_template_loop_rating - 5 * @hooked woocommerce_template_loop_price - 10 */ do_action( 'woocommerce_after_shop_loop_item_title' ); ?> <p>&nbsp;</p> <div class="product-desp"> <?php echo wp_trim_words( get_the_content(), 27, '...' ); ?></div> </a> <?php /** * woocommerce_after_shop_loop_item hook * * @hooked woocommerce_template_loop_add_to_cart - 10 */ do_action( 'woocommerce_after_shop_loop_item' ); ?> </li> <?php endwhile; } else { echo __( 'No products found' ); } wp_reset_postdata(); ?> </ul> <?php /** * woocommerce_after_main_content hook * * @hooked woocommerce_output_content_wrapper_end - 10 (outputs closing divs for the content) */ do_action( 'woocommerce_after_main_content' ); ?> <?php get_footer( 'shop' ); ?> 

Solutions Collecting From Web of "Страница пользовательской категории Woocommerce с разбивкой на страницы"

Вам нужно использовать таксономический запрос. Вы можете больше узнать об этом в кодексе. Я немного изменил ваш код. Для разбивки на страницы я использовал следующую, предыдущую навигацию.

Дайте этот код попробовать, он должен работать

 <?php /** * The Template for displaying products in a product category. Simply includes the archive template. * * Override this template by copying it to yourtheme/woocommerce/taxonomy-product_cat.php * * @author WooThemes * @package WooCommerce/Templates * @version 1.6.4 */ 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' ); ?> <div class="category-header"> <div class="cat-thumb"> <?php // verify that this is a product category page if (is_product_category()){ global $wp_query; // get the query object $cat = $wp_query->get_queried_object(); // get the thumbnail id user the term_id $thumbnail_id = get_woocommerce_term_meta( $cat->term_id, 'thumbnail_id', true ); // get the image URL $image = wp_get_attachment_url( $thumbnail_id ); // print the IMG HTML echo '<img src="'.$image.'" alt="" />'; } ?></div> <?php if ( apply_filters( 'woocommerce_show_page_title', true ) ) : ?> <h1 class="page-title"> <?php woocommerce_page_title(); ?></h1> <?php endif; ?> <?php /** * woocommerce_archive_description hook * * @hooked woocommerce_taxonomy_archive_description - 10 * @hooked woocommerce_product_archive_description - 10 */ do_action( 'woocommerce_archive_description' ); ?> </div> <ul class="cat-products"> <?php $paged= (get_query_var('paged' )) ? get_query_var('paged'):1; $args = array( 'post_type' => 'product', 'paged' => $paged, 'posts_per_page' => 5, 'tax_query' => array( array( 'taxonomy' => 'product_cat', 'field' => 'id', 'terms' => $cat->term_id, ), ), ); $loop = new WP_Query( $args ); if ( $loop->have_posts() ) { while ( $loop->have_posts() ) : $loop->the_post(); ?> <li <?php post_class( $classes ); ?>> <?php do_action( 'woocommerce_before_shop_loop_item' ); ?> <a href="<?php the_permalink(); ?>"> <?php /** * woocommerce_before_shop_loop_item_title hook * * @hooked woocommerce_show_product_loop_sale_flash - 10 * @hooked woocommerce_template_loop_product_thumbnail - 10 */ do_action( 'woocommerce_before_shop_loop_item_title' ); /** * woocommerce_shop_loop_item_title hook * * @hooked woocommerce_template_loop_product_title - 10 */ do_action( 'woocommerce_shop_loop_item_title' ); /** * woocommerce_after_shop_loop_item_title hook * * @hooked woocommerce_template_loop_rating - 5 * @hooked woocommerce_template_loop_price - 10 */ do_action( 'woocommerce_after_shop_loop_item_title' ); ?> <p>&nbsp;</p> <div class="product-desp"> <?php echo wp_trim_words( get_the_content(), 27, '...' ); ?></div> </a> <?php /** * woocommerce_after_shop_loop_item hook * * @hooked woocommerce_template_loop_add_to_cart - 10 */ do_action( 'woocommerce_after_shop_loop_item' ); ?> </li> <?php endwhile; } else { echo __( 'No products found' ); } wp_reset_postdata(); ?> </ul> <div class="pagination"> <p class="pull-left previous" ><?php previous_posts_link( '&larr; Previous ', $loop->max_num_pages ); ?></p> <p class="pull-right next" ><?php next_posts_link( 'More &rarr;', $loop->max_num_pages ); ?></p> </div> <?php /** * woocommerce_after_main_content hook * * @hooked woocommerce_output_content_wrapper_end - 10 (outputs closing divs for the content) */ do_action( 'woocommerce_after_main_content' ); ?> <?php get_footer( 'shop' ); ?>