صفحه بندی شورت کد آخرین محصولات ووکامرس

BahramElf

کاربر عضو
سلام

من برای نمایش جدیدترین محصولات شورت کد 

[recent_products per_page="9" columns="3"]


رو استفاده کردم، مشکلی که وجود داره اینکه الان فقط یک صفحه هست که داخلش فقط 9 محصول آخر رو نشون مید و صفحه بندی براش ایجاد نمیکنه تا کاربر بتونه قدیمی تر هارو هم ببینه، قالب استورفرانت

پیشاپیش سپاس

 

Mehr@ban

کاربر عضو
سلام

کد زیر رو امتحان کن

کد:
[recent_products columns="3"]
 

BahramElf

کاربر عضو
جواب پیدا شد

دوستانی که مثل من همچین مشکلی رو دارند کافیه کد زیر رو به function.php اضافه کنید:

/**
* This code shows pagination for WooCommerce shortcodes when it's embeded on single pages.
* Include into functions.php.
*/

if ( ! is_admin() ) {
// ---------------------- FRONTPAGE -------------------

if ( defined('WC_VERSION') ) {
// ---------------------- WooCommerce active -------------------
/**
* Set Pagination for shortcodes custom loop on single-pages.
* @uses $woocommerce_loop;
*/
add_action( 'pre_get_posts', 'kli_wc_pre_get_posts_query' );
function kli_wc_pre_get_posts_query( $query ) {
global $woocommerce_loop;

// Get paged from main query only
// ! frontpage missing the post_type
if ( is_main_query() && ( $query->query['post_type'] == 'product' ) || ! isset( $query->query['post_type'] ) ){

if ( isset($query->query['paged']) ){
$woocommerce_loop['paged'] = $query->query['paged'];
}
}

if ( ! $query->is_post_type_archive || $query->query['post_type'] !== 'product' ){
return;
}

$query->is_paged = true;
$query->query['paged'] = $woocommerce_loop['paged'];
$query->query_vars['paged'] = $woocommerce_loop['paged'];
}

/** Prepare Pagination data for shortcodes on pages
* @uses $woocommerce_loop;
*/
add_action( 'loop_end', 'kli_query_loop_end' );
function kli_query_loop_end( $query ) {

if ( ! $query->is_post_type_archive || $query->query['post_type'] !== 'product' ){
return;
}

// Cache data for pagination
global $woocommerce_loop;
$woocommerce_loop['pagination']['paged'] = $woocommerce_loop['paged'];
$woocommerce_loop['pagination']['found_posts'] = $query->found_posts;
$woocommerce_loop['pagination']['max_num_pages'] = $query->max_num_pages;
$woocommerce_loop['pagination']['post_count'] = $query->post_count;
$woocommerce_loop['pagination']['current_post'] = $query->current_post;

}

/**
* Pagination for shortcodes on single-pages
* @uses $woocommerce_loop;
*/
add_action( 'woocommerce_after_template_part', 'kli_wc_shortcode_pagination' );
function kli_wc_shortcode_pagination( $template_name ) {

if ( ! ( $template_name === 'loop/loop-end.php' && is_page() ) ){
return;
}

global $wp_query, $woocommerce_loop;

if ( ! isset( $woocommerce_loop['pagination'] ) ){
return;
}

$wp_query->query_vars['paged'] = $woocommerce_loop['pagination']['paged'];
$wp_query->query['paged'] = $woocommerce_loop['pagination']['paged'];
$wp_query->max_num_pages = $woocommerce_loop['pagination']['max_num_pages'];
$wp_query->found_posts = $woocommerce_loop['pagination']['found_posts'];
$wp_query->post_count = $woocommerce_loop['pagination']['post_count'];
$wp_query->current_post = $woocommerce_loop['pagination']['current_post'];

// Custom pagination function or default woocommerce_pagination()
kli_woocommerce_pagination();
}

/**
* Custom pagination for WooCommerce instead the default woocommerce_pagination()
* @uses plugin Prime Strategy Page Navi, but added is_singular() on #line16
*/
remove_action('woocommerce_after_shop_loop', 'woocommerce_pagination', 10);
add_action( 'woocommerce_after_shop_loop', 'kli_woocommerce_pagination', 10);
function kli_woocommerce_pagination() {
woocommerce_pagination();
}

}// END WOOCOMMERCE
}// END FRONTPAGE


و برای عدم نمایش در صفحه اصلی هم کد زیر رو در ادامه اضافه کنید:

کد:
add_action('wp_head','ifhompage');
function ifhompage() {
    if ( is_front_page() ){
		$op="<style> .woocommerce-pagination { display: none; } </style>";
	}
    echo $op;
}
 
بالا