给使用Woocommerce短码生成的产品列表页面添加翻页功能
作者:DIYzhan.com |
浏览:8154 |
评论已关闭 条评论
但是,如果我们使用woocommerce提供的短码 [featured_products per_page=”12″ columns=”4″] 或者 [recent_products per_page=”12″ columns=”4″] 在某个页面来展现featured products或者recent products的话,我们是只可以在该页面显示最多3行4列共12个产品(当然你可以改变上述短码中显示的数量,在一页显示出来),如果我们有更多的featured products或者recent products的话,并通过翻页显示在第2,3,4…..等页面应该怎么操作呢?
注:大家可以在 https://docs.woothemes.com/document/woocommerce-shortcodes/ 页面查看woocommerce的相关短码。另外,直接使用插件:Shortcode Pagination for WooCommerce ,也可以添加翻页功能,而不需要下面的步骤了。
这个时候,我们需要在主题的functions.php文件里面添加如下代码,并保存即可。(注意:修改functions.php之前请备份你的functions.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
原创文章,转载请注明: 转载自DIYzhan.com-从零开始自己做外贸网站和海外网络营销
本文链接地址:https://www.diyzhan.com/2015/11/woocommerce-pagenavi/
本站遵循CC协议署名-非商业性使用-相同方式共享
转载请注明来自:DIYzhan.com-从零开始自己做外贸网站和海外网络营销
相关推荐
- 如何让Google,Yahoo,Bing等搜索引擎快速地收录你的外贸网站
- Posted on 07月09日
- 如何把WordPress外贸网站做成前端英文,WordPress后台中文
- Posted on 05月09日
- 一个简洁易用WordPress企业网站主题1天建外贸B2B网站教程(置顶)
- Posted on 05月28日
- 这样优化你的Adwords广告,你已经超过了90%的Adwords用户
- Posted on 06月15日
评论已关闭。