themes-wordpress/sketch/inc/jetpack.php

146 lines
4.1 KiB
PHP

<?php
/**
* Jetpack Compatibility File
* See: http://jetpack.me/
*
* @package Sketch
*/
/**
* Add theme support for Infinite Scroll.
* See: http://jetpack.me/support/infinite-scroll/
*/
function sketch_jetpack_setup() {
add_theme_support( 'infinite-scroll', array(
'container' => 'main',
'posts_per_page' => 9,
'footer' => 'page',
'render' => 'sketch_infinite_scroll_render',
'wrapper' => false,
) );
add_theme_support( 'featured-content', array(
'filter' => 'sketch_get_featured_posts',
'max_posts' => 10,
'post_types' => array( 'post', 'page', 'jetpack-portfolio' ),
) );
/**
* Add theme support for Responsive Videos.
*/
add_theme_support( 'jetpack-responsive-videos' );
/**
* Add theme support for Jetpack portfolios
*/
add_theme_support( 'jetpack-portfolio', array(
'title' => true,
'content' => true,
'featured-image' => true,
) );
/**
* Add theme support for site logos
*/
add_theme_support( 'site-logo', array(
'size' => 'sketch-site-logo'
) );
}
add_action( 'after_setup_theme', 'sketch_jetpack_setup' );
/**
* Define the code that is used to render the posts added by Infinite Scroll.
*
* Includes the whole loop. Used to include the correct template part for the Portfolio CPT.
*/
function sketch_infinite_scroll_render() {
while ( have_posts() ) {
the_post();
if ( is_post_type_archive( 'jetpack-portfolio' ) || is_tax( 'jetpack-portfolio-type' ) || is_tax( 'jetpack-portfolio-tag' ) ) {
get_template_part( 'content', 'portfolio' );
} else {
get_template_part( 'content', get_post_format() );
}
}
}
function sketch_get_featured_posts() {
return apply_filters( 'sketch_get_featured_posts', array() );
}
function sketch_has_featured_posts( $minimum = 1 ) {
if ( is_paged() )
return false;
$minimum = absint( $minimum );
$featured_posts = apply_filters( 'sketch_get_featured_posts', array() );
if ( ! is_array( $featured_posts ) )
return false;
if ( $minimum > count( $featured_posts ) )
return false;
return true;
}
/**
* Portfolio Title.
*/
function sketch_portfolio_title( $before = '', $after = '' ) {
$jetpack_portfolio_title = get_option( 'jetpack_portfolio_title' );
$title = '';
if ( is_post_type_archive( 'jetpack-portfolio' ) ) {
if ( isset( $jetpack_portfolio_title ) && '' != $jetpack_portfolio_title ) {
$title = esc_html( $jetpack_portfolio_title );
} else {
$title = post_type_archive_title( '', false );
}
} elseif ( is_tax( 'jetpack-portfolio-type' ) || is_tax( 'jetpack-portfolio-tag' ) ) {
$title = single_term_title( '', false );
}
echo $before . $title . $after;
}
/**
* Portfolio Content.
*/
function sketch_portfolio_content( $before = '', $after = '' ) {
$jetpack_portfolio_content = get_option( 'jetpack_portfolio_content' );
if ( is_tax() && get_the_archive_description() ) {
echo $before . get_the_archive_description() . $after;
} else if ( isset( $jetpack_portfolio_content ) && '' != $jetpack_portfolio_content ) {
$content = convert_chars( convert_smilies( wptexturize( wp_kses_post( $jetpack_portfolio_content ) ) ) );
echo $before . $content . $after;
}
}
/**
* Portfolio Featured Image.
*/
function sketch_portfolio_featured_image( $before = '', $after = '' ) {
$jetpack_portfolio_featured_image = get_option( 'jetpack_portfolio_featured_image' );
if ( isset( $jetpack_portfolio_featured_image ) && '' != $jetpack_portfolio_featured_image ) {
$featured_image = wp_get_attachment_image( (int) $jetpack_portfolio_featured_image, 'sketch-featured' );
echo $before . $featured_image . $after;
}
}
/**
* Filter Infinite Scroll text handle.
*/
function sketch_portfolio_infinite_scroll_navigation( $js_settings ) {
if ( is_post_type_archive( 'jetpack-portfolio' ) || is_tax( 'jetpack-portfolio-type' ) || is_tax( 'jetpack-portfolio-tag' ) ) {
$js_settings[ 'text' ] = esc_js( esc_html__( 'Older projects', 'sketch' ) );
}
return $js_settings;
}
add_filter( 'infinite_scroll_js_settings', 'sketch_portfolio_infinite_scroll_navigation' );