laipower/wp-content/themes/generatepress/inc/structure/featured-images.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' );
}
}
}