143 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			143 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/**
 | 
						|
 * Archive elements.
 | 
						|
 *
 | 
						|
 * @package GeneratePress
 | 
						|
 */
 | 
						|
 | 
						|
if ( ! defined( 'ABSPATH' ) ) {
 | 
						|
	exit; // Exit if accessed directly.
 | 
						|
}
 | 
						|
 | 
						|
if ( ! function_exists( 'generate_archive_title' ) ) {
 | 
						|
	add_action( 'generate_archive_title', 'generate_archive_title' );
 | 
						|
	/**
 | 
						|
	 * Build the archive title
 | 
						|
	 *
 | 
						|
	 * @since 1.3.24
 | 
						|
	 */
 | 
						|
	function generate_archive_title() {
 | 
						|
		if ( ! function_exists( 'the_archive_title' ) ) {
 | 
						|
			return;
 | 
						|
		}
 | 
						|
		?>
 | 
						|
		<header <?php generate_do_attr( 'page-header' ); ?>>
 | 
						|
			<?php
 | 
						|
			/**
 | 
						|
			 * generate_before_archive_title hook.
 | 
						|
			 *
 | 
						|
			 * @since 0.1
 | 
						|
			 */
 | 
						|
			do_action( 'generate_before_archive_title' );
 | 
						|
			?>
 | 
						|
 | 
						|
			<h1 class="page-title">
 | 
						|
				<?php the_archive_title(); ?>
 | 
						|
			</h1>
 | 
						|
 | 
						|
			<?php
 | 
						|
			/**
 | 
						|
			 * generate_after_archive_title hook.
 | 
						|
			 *
 | 
						|
			 * @since 0.1
 | 
						|
			 *
 | 
						|
			 * @hooked generate_do_archive_description - 10
 | 
						|
			 */
 | 
						|
			do_action( 'generate_after_archive_title' );
 | 
						|
			?>
 | 
						|
		</header>
 | 
						|
		<?php
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
if ( ! function_exists( 'generate_filter_the_archive_title' ) ) {
 | 
						|
	add_filter( 'get_the_archive_title', 'generate_filter_the_archive_title' );
 | 
						|
	/**
 | 
						|
	 * Alter the_archive_title() function to match our original archive title function
 | 
						|
	 *
 | 
						|
	 * @since 1.3.45
 | 
						|
	 *
 | 
						|
	 * @param string $title The archive title.
 | 
						|
	 * @return string The altered archive title
 | 
						|
	 */
 | 
						|
	function generate_filter_the_archive_title( $title ) {
 | 
						|
		if ( is_category() ) {
 | 
						|
			$title = single_cat_title( '', false );
 | 
						|
		} elseif ( is_tag() ) {
 | 
						|
			$title = single_tag_title( '', false );
 | 
						|
		} elseif ( is_author() ) {
 | 
						|
			/*
 | 
						|
			 * Queue the first post, that way we know
 | 
						|
			 * what author we're dealing with (if that is the case).
 | 
						|
			 */
 | 
						|
			the_post();
 | 
						|
 | 
						|
			$title = sprintf(
 | 
						|
				'%1$s<span class="vcard">%2$s</span>',
 | 
						|
				get_avatar( get_the_author_meta( 'ID' ), 50 ),
 | 
						|
				get_the_author()
 | 
						|
			);
 | 
						|
 | 
						|
			/*
 | 
						|
			 * Since we called the_post() above, we need to
 | 
						|
			 * rewind the loop back to the beginning that way
 | 
						|
			 * we can run the loop properly, in full.
 | 
						|
			 */
 | 
						|
			rewind_posts();
 | 
						|
		}
 | 
						|
 | 
						|
		return $title;
 | 
						|
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
add_action( 'generate_after_archive_title', 'generate_do_archive_description' );
 | 
						|
/**
 | 
						|
 * Output the archive description.
 | 
						|
 *
 | 
						|
 * @since 2.3
 | 
						|
 */
 | 
						|
function generate_do_archive_description() {
 | 
						|
	$term_description = get_the_archive_description();
 | 
						|
 | 
						|
	if ( ! empty( $term_description ) ) {
 | 
						|
		if ( is_author() ) {
 | 
						|
			printf( '<div class="author-info">%s</div>', $term_description ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
 | 
						|
		} else {
 | 
						|
			printf( '<div class="taxonomy-description">%s</div>', $term_description ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * generate_after_archive_description hook.
 | 
						|
	 *
 | 
						|
	 * @since 0.1
 | 
						|
	 */
 | 
						|
	do_action( 'generate_after_archive_description' );
 | 
						|
}
 | 
						|
 | 
						|
add_action( 'generate_before_loop', 'generate_do_search_results_title' );
 | 
						|
/**
 | 
						|
 * Add the search results title to the search results page.
 | 
						|
 *
 | 
						|
 * @since 3.1.0
 | 
						|
 * @param string $template The template we're targeting.
 | 
						|
 */
 | 
						|
function generate_do_search_results_title( $template ) {
 | 
						|
	if ( 'search' === $template ) {
 | 
						|
		// phpcs:ignore -- No escaping needed.
 | 
						|
		echo apply_filters(
 | 
						|
			'generate_search_title_output',
 | 
						|
			sprintf(
 | 
						|
				'<header %s><h1 class="page-title">%s</h1></header>',
 | 
						|
				generate_get_attr( 'page-header' ),
 | 
						|
				sprintf(
 | 
						|
					/* translators: 1: Search query name */
 | 
						|
					__( 'Search Results for: %s', 'generatepress' ),
 | 
						|
					'<span>' . get_search_query() . '</span>'
 | 
						|
				)
 | 
						|
			)
 | 
						|
		);
 | 
						|
	}
 | 
						|
}
 |