88 lines
2.0 KiB
PHP
Executable File
88 lines
2.0 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Kadence\Jetpack\Component class
|
|
*
|
|
* @package kadence
|
|
*/
|
|
|
|
namespace Kadence\Jetpack;
|
|
|
|
use Kadence\Component_Interface;
|
|
use function add_action;
|
|
use function add_theme_support;
|
|
use function have_posts;
|
|
use function the_post;
|
|
use function is_search;
|
|
use function get_template_part;
|
|
use function get_post_type;
|
|
|
|
/**
|
|
* Class for adding Jetpack plugin support.
|
|
*/
|
|
class Component implements Component_Interface {
|
|
|
|
/**
|
|
* Gets the unique identifier for the theme component.
|
|
*
|
|
* @return string Component slug.
|
|
*/
|
|
public function get_slug() : string {
|
|
return 'jetpack';
|
|
}
|
|
|
|
/**
|
|
* Adds the action and filter hooks to integrate with WordPress.
|
|
*/
|
|
public function initialize() {
|
|
add_action( 'after_setup_theme', array( $this, 'action_add_jetpack_support' ) );
|
|
}
|
|
|
|
/**
|
|
* Adds theme support for the Jetpack plugin.
|
|
*
|
|
* See: https://jetpack.com/support/infinite-scroll/
|
|
* See: https://jetpack.com/support/responsive-videos/
|
|
* See: https://jetpack.com/support/content-options/
|
|
*/
|
|
public function action_add_jetpack_support() {
|
|
|
|
// Add theme support for Infinite Scroll.
|
|
add_theme_support(
|
|
'infinite-scroll',
|
|
array(
|
|
'container' => 'archive-container',
|
|
'footer' => false,
|
|
'wrapper' => false,
|
|
'render' => function() {
|
|
while ( have_posts() ) {
|
|
the_post();
|
|
if ( is_search() ) {
|
|
get_template_part( 'template-parts/content/entry', 'search' );
|
|
} else {
|
|
get_template_part( 'template-parts/content/entry', get_post_type() );
|
|
}
|
|
}
|
|
},
|
|
)
|
|
);
|
|
|
|
// Add theme support for Responsive Videos.
|
|
add_theme_support( 'jetpack-responsive-videos' );
|
|
|
|
// Add theme support for Content Options.
|
|
add_theme_support(
|
|
'jetpack-content-options',
|
|
array(
|
|
'post-details' => array(
|
|
'stylesheet' => 'kadence-content',
|
|
'date' => '.posted-on',
|
|
'categories' => '.category-links',
|
|
'tags' => '.tag-links',
|
|
'author' => '.posted-by',
|
|
'comment' => '.comments-link',
|
|
),
|
|
)
|
|
);
|
|
}
|
|
}
|