Beschreibungen in Produktkategorien anzuzeigen lässt die Besonderheiten einer Produktgruppe auf einen Blick erfassen. Beim Blättern auf die 2. Seite eines Kategorie-Archivs fehlt der Überblick allerdings. Zuständig dafür, dass nur die jeweilige Seite 1 mit der Beschreibung bestückt wird, ist die Funktion woocommerce_taxonomy_archive_description
in der wc-template-functions.php
.
if ( ! function_exists( 'woocommerce_taxonomy_archive_description' ) ) {
/**
* Show an archive description on taxonomy archives.
*/
function woocommerce_taxonomy_archive_description() {
if ( is_product_taxonomy() && 0 === absint( get_query_var( 'paged' ) ) ) {
$term = get_queried_object();
if ( $term ) {
/**
* Filters the archive's raw description on taxonomy archives.
*
* @since 6.7.0
*
* @param string $term_description Raw description text.
* @param WP_Term $term Term object for this taxonomy archive.
*/
$term_description = apply_filters( 'woocommerce_taxonomy_archive_description_raw', $term->description, $term );
if ( ! empty( $term_description ) ) {
echo '<div class="term-description">' . wc_format_content( wp_kses_post( $term_description ) ) . '</div>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
}
}
}
}
Da die Funktion nur zur Anwendung kommt, wenn sie noch nicht existiert, könnte sie z.B. in der functions.php des Themes einfach kopiert und angepasst werden. Damit wird die Kategoriebeschreibung auch auf allen Folgeseiten angezeigt.
function woocommerce_taxonomy_archive_description() {
if ( is_product_taxonomy() ) {
$term = get_queried_object();
if ( $term ) {
$term_description = apply_filters( 'woocommerce_taxonomy_archive_description_raw', $term->description, $term );
if ( ! empty( $term_description ) ) {
echo '<div class="term-description">' . wc_format_content( wp_kses_post( $term_description ) ) . '</div>';
}
}
}
}
Genausogut lässt sich die Fortführung der Beschreibung auf Kategoriefolgeseiten über die Action woocommerce_archive_description
umsetzen.
function display_description_on_all_category_archive_pages() {
if ( is_product_taxonomy() && 0 !== absint( get_query_var( 'paged' ) ) ) {
$term = get_queried_object();
if ( $term ) {
$term_description = apply_filters( 'woocommerce_taxonomy_archive_description_raw', $term->description, $term );
if ( ! empty( $term_description ) ) {
echo '<div class="term-description">' . wc_format_content( wp_kses_post( $term_description ) ) . '</div>';
}
}
}
}
add_action( 'woocommerce_archive_description', 'display_description_on_all_category_archive_pages');
Schreibe einen Kommentar