Add product archive header template and re-hook (#33681)

* Add product archive header template and re-hook

Moves the product taxonomy archive header into its own template file,
creates a related output function, and then re-hooks the new template
back into the archive-product.php file in the same place, via the
'woocommerce_before_main_content' hook, priority 40.

This is so that this template part can be removed/unhooked via the
'remove_action' function, which is a cleaner approach than template
overrides or additional style changes.

Resolves: #33672

* add product archive header template changelog

* bump template versions

* bump template versions correctly

* add a new hook in the archive-product.php template for the header template
This commit is contained in:
Tommy Ferry 2024-03-08 21:33:40 +00:00 committed by GitHub
parent 8e200a35b7
commit 7fe00de727
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 76 additions and 17 deletions

View File

@ -0,0 +1,4 @@
Significance: minor
Type: add
Add new product archive header template and hook into woocommerce_before_main_content

View File

@ -1245,6 +1245,15 @@ if ( ! function_exists( 'woocommerce_template_loop_category_link_close' ) ) {
}
}
if ( ! function_exists( 'woocommerce_product_taxonomy_archive_header' ) ) {
/**
* Output the products header on taxonomy archives.
*/
function woocommerce_product_taxonomy_archive_header() {
wc_get_template( 'loop/header.php' );
}
}
if ( ! function_exists( 'woocommerce_taxonomy_archive_description' ) ) {
/**
* Show an archive description on taxonomy archives.

View File

@ -53,6 +53,13 @@ add_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20, 0 )
*/
add_action( 'woocommerce_sidebar', 'woocommerce_get_sidebar', 10 );
/**
* Archive header.
*
* @see woocommerce_product_taxonomy_archive_header()
*/
add_action( 'woocommerce_shop_loop_header', 'woocommerce_product_taxonomy_archive_header' );
/**
* Archive descriptions.
*

View File

@ -12,7 +12,7 @@
*
* @see https://woo.com/document/template-structure/
* @package WooCommerce\Templates
* @version 3.4.0
* @version 8.6.0
*/
defined( 'ABSPATH' ) || exit;
@ -28,23 +28,15 @@ get_header( 'shop' );
*/
do_action( 'woocommerce_before_main_content' );
?>
<header class="woocommerce-products-header">
<?php if ( apply_filters( 'woocommerce_show_page_title', true ) ) : ?>
<h1 class="woocommerce-products-header__title page-title"><?php woocommerce_page_title(); ?></h1>
<?php endif; ?>
/**
* Hook: woocommerce_shop_loop_header.
*
* @since 8.6.0
*
* @hooked woocommerce_product_taxonomy_archive_header - 10
*/
do_action( 'woocommerce_shop_loop_header' );
<?php
/**
* Hook: woocommerce_archive_description.
*
* @hooked woocommerce_taxonomy_archive_description - 10
* @hooked woocommerce_product_archive_description - 10
*/
do_action( 'woocommerce_archive_description' );
?>
</header>
<?php
if ( woocommerce_product_loop() ) {
/**

View File

@ -0,0 +1,47 @@
<?php
/**
* Product taxonomy archive header
*
* This template can be overridden by copying it to yourtheme/woocommerce/loop/header.php.
*
* HOWEVER, on occasion WooCommerce will need to update template files and you
* (the theme developer) will need to copy the new files to your theme to
* maintain compatibility. We try to do this as little as possible, but it does
* happen. When this occurs the version of the template file will be bumped and
* the readme will list any important changes.
*
* @see https://docs.woocommerce.com/document/template-structure/
* @package WooCommerce\Templates
* @version 8.6.0
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
?>
<header class="woocommerce-products-header">
<?php
/**
* Hook: woocommerce_show_page_title.
*
* Allow developers to remove the product taxonomy archive page title.
*
* @since 2.0.6.
*/
if ( apply_filters( 'woocommerce_show_page_title', true ) ) :
?>
<h1 class="woocommerce-products-header__title page-title"><?php woocommerce_page_title(); ?></h1>
<?php endif; ?>
<?php
/**
* Hook: woocommerce_archive_description.
*
* @since 1.6.2.
* @hooked woocommerce_taxonomy_archive_description - 10
* @hooked woocommerce_product_archive_description - 10
*/
do_action( 'woocommerce_archive_description' );
?>
</header>