117 lines
3.3 KiB
PHP
117 lines
3.3 KiB
PHP
<?php
|
|
/**
|
|
* Storefront Jetpack Class
|
|
*
|
|
* @package storefront
|
|
* @since 2.0.0
|
|
*/
|
|
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit;
|
|
}
|
|
|
|
if ( ! class_exists( 'Storefront_Jetpack' ) ) :
|
|
|
|
/**
|
|
* The Storefront Jetpack integration class
|
|
*/
|
|
class Storefront_Jetpack {
|
|
|
|
/**
|
|
* Setup class.
|
|
*
|
|
* @since 1.0
|
|
*/
|
|
public function __construct() {
|
|
add_action( 'init', array( $this, 'jetpack_setup' ) );
|
|
add_action( 'wp_enqueue_scripts', array( $this, 'jetpack_scripts' ), 10 );
|
|
|
|
if ( storefront_is_woocommerce_activated() ) {
|
|
add_action( 'init', array( $this, 'jetpack_infinite_scroll_wrapper_columns' ) );
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Add theme support for Infinite Scroll.
|
|
* See: http://jetpack.me/support/infinite-scroll/
|
|
*/
|
|
public function jetpack_setup() {
|
|
add_theme_support(
|
|
'infinite-scroll', apply_filters(
|
|
'storefront_jetpack_infinite_scroll_args', array(
|
|
'container' => 'main',
|
|
'footer' => 'page',
|
|
'render' => array( $this, 'jetpack_infinite_scroll_loop' ),
|
|
'footer_widgets' => array(
|
|
'footer-1',
|
|
'footer-2',
|
|
'footer-3',
|
|
'footer-4',
|
|
),
|
|
)
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* A loop used to display content appended using Jetpack infinite scroll
|
|
*
|
|
* @return void
|
|
*/
|
|
public function jetpack_infinite_scroll_loop() {
|
|
do_action( 'storefront_jetpack_infinite_scroll_before' );
|
|
|
|
if ( function_exists( 'storefront_is_product_archive' ) && storefront_is_product_archive() ) {
|
|
do_action( 'storefront_jetpack_product_infinite_scroll_before' );
|
|
woocommerce_product_loop_start();
|
|
}
|
|
|
|
while ( have_posts() ) :
|
|
the_post();
|
|
if ( function_exists( 'storefront_is_product_archive' ) && storefront_is_product_archive() ) {
|
|
wc_get_template_part( 'content', 'product' );
|
|
} else {
|
|
get_template_part( 'content', get_post_format() );
|
|
}
|
|
endwhile; // end of the loop.
|
|
|
|
if ( function_exists( 'storefront_is_product_archive' ) && storefront_is_product_archive() ) {
|
|
woocommerce_product_loop_end();
|
|
do_action( 'storefront_jetpack_product_infinite_scroll_after' );
|
|
}
|
|
|
|
do_action( 'storefront_jetpack_infinite_scroll_after' );
|
|
}
|
|
|
|
/**
|
|
* Adds columns wrapper to content appended by Jetpack infinite scroll
|
|
*
|
|
* @return void
|
|
*/
|
|
public function jetpack_infinite_scroll_wrapper_columns() {
|
|
add_action( 'storefront_jetpack_product_infinite_scroll_before', 'storefront_product_columns_wrapper' );
|
|
add_action( 'storefront_jetpack_product_infinite_scroll_after', 'storefront_product_columns_wrapper_close' );
|
|
}
|
|
|
|
/**
|
|
* Enqueue jetpack styles.
|
|
*
|
|
* @since 1.6.1
|
|
*/
|
|
public function jetpack_scripts() {
|
|
global $storefront_version;
|
|
|
|
if ( wp_style_is( 'the-neverending-homepage', 'enqueued' ) ) {
|
|
wp_enqueue_style( 'storefront-jetpack-infinite-scroll', get_template_directory_uri() . '/assets/css/jetpack/infinite-scroll.css', array( 'the-neverending-homepage' ), $storefront_version );
|
|
wp_style_add_data( 'storefront-jetpack-infinite-scroll', 'rtl', 'replace' );
|
|
}
|
|
|
|
wp_enqueue_style( 'storefront-jetpack-widgets', get_template_directory_uri() . '/assets/css/jetpack/widgets.css', array(), $storefront_version );
|
|
wp_style_add_data( 'storefront-jetpack-widgets', 'rtl', 'replace' );
|
|
}
|
|
}
|
|
|
|
endif;
|
|
|
|
return new Storefront_Jetpack();
|