131 lines
2.8 KiB
PHP
131 lines
2.8 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* Featured image elements.
|
||
|
*
|
||
|
* @package GeneratePress
|
||
|
*/
|
||
|
|
||
|
if ( ! defined( 'ABSPATH' ) ) {
|
||
|
exit; // Exit if accessed directly.
|
||
|
}
|
||
|
|
||
|
if ( ! function_exists( 'generate_post_image' ) ) {
|
||
|
add_action( 'generate_after_entry_header', 'generate_post_image' );
|
||
|
/**
|
||
|
* Prints the Post Image to post excerpts
|
||
|
*/
|
||
|
function generate_post_image() {
|
||
|
// If there's no featured image, return.
|
||
|
if ( ! has_post_thumbnail() ) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
// If we're not on any single post/page or the 404 template, we must be showing excerpts.
|
||
|
if ( ! is_singular() && ! is_404() ) {
|
||
|
|
||
|
$attrs = array();
|
||
|
|
||
|
if ( 'microdata' === generate_get_schema_type() ) {
|
||
|
$attrs = array(
|
||
|
'itemprop' => 'image',
|
||
|
);
|
||
|
}
|
||
|
|
||
|
echo apply_filters( // phpcs:ignore
|
||
|
'generate_featured_image_output',
|
||
|
sprintf(
|
||
|
'<div class="post-image">
|
||
|
%3$s
|
||
|
<a href="%1$s">
|
||
|
%2$s
|
||
|
</a>
|
||
|
</div>',
|
||
|
esc_url( get_permalink() ),
|
||
|
get_the_post_thumbnail(
|
||
|
get_the_ID(),
|
||
|
apply_filters( 'generate_page_header_default_size', 'full' ),
|
||
|
$attrs
|
||
|
),
|
||
|
apply_filters( 'generate_inside_featured_image_output', '' )
|
||
|
)
|
||
|
);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if ( ! function_exists( 'generate_featured_page_header_area' ) ) {
|
||
|
/**
|
||
|
* Build the page header.
|
||
|
*
|
||
|
* @since 1.0.7
|
||
|
*
|
||
|
* @param string $class The featured image container class.
|
||
|
*/
|
||
|
function generate_featured_page_header_area( $class ) {
|
||
|
// Don't run the function unless we're on a page it applies to.
|
||
|
if ( ! is_singular() ) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
// Don't run the function unless we have a post thumbnail.
|
||
|
if ( ! has_post_thumbnail() ) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
$attrs = array();
|
||
|
|
||
|
if ( 'microdata' === generate_get_schema_type() ) {
|
||
|
$attrs = array(
|
||
|
'itemprop' => 'image',
|
||
|
);
|
||
|
}
|
||
|
?>
|
||
|
<div class="featured-image <?php echo esc_attr( $class ); ?> grid-container grid-parent">
|
||
|
<?php
|
||
|
the_post_thumbnail(
|
||
|
apply_filters( 'generate_page_header_default_size', 'full' ),
|
||
|
$attrs
|
||
|
);
|
||
|
?>
|
||
|
</div>
|
||
|
<?php
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if ( ! function_exists( 'generate_featured_page_header' ) ) {
|
||
|
add_action( 'generate_after_header', 'generate_featured_page_header', 10 );
|
||
|
/**
|
||
|
* Add page header above content.
|
||
|
*
|
||
|
* @since 1.0.2
|
||
|
*/
|
||
|
function generate_featured_page_header() {
|
||
|
if ( function_exists( 'generate_page_header' ) ) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if ( is_page() ) {
|
||
|
generate_featured_page_header_area( 'page-header-image' );
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if ( ! function_exists( 'generate_featured_page_header_inside_single' ) ) {
|
||
|
add_action( 'generate_before_content', 'generate_featured_page_header_inside_single', 10 );
|
||
|
/**
|
||
|
* Add post header inside content.
|
||
|
* Only add to single post.
|
||
|
*
|
||
|
* @since 1.0.7
|
||
|
*/
|
||
|
function generate_featured_page_header_inside_single() {
|
||
|
if ( function_exists( 'generate_page_header' ) ) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if ( is_single() ) {
|
||
|
generate_featured_page_header_area( 'page-header-image-single' );
|
||
|
}
|
||
|
}
|
||
|
}
|