Produkt-Kategoriebeschreibung auf allen Seiten einer Kategorie anzeigen

one against all, all against one, discussion
foto von alexas fotos auf pixabay

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_descriptionumsetzen.

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');

Bitte Kommentarfunktion nicht für Supportanfragen nutzen. Dem kann hier nicht entsprochen werden. Die Angabe einer E-Mail-Adresse und eines Namens ist nicht erforderlich. Einen (Spitz)-Namen zu nennen wäre aber doch nett.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Hinweis: Sowohl angegebener Name als auch E-Mail-Adresse (beides ist optional, dafür werden alle Kommentare vor Veröffentlichung geprüft) werden dauerhaft gespeichert. Du kannst jeder Zeit die Löschung Deiner Daten oder / und Kommentare einfordern, direkt über dieses Formular (wird nicht veröffentlicht, und im Anschluss gelöscht), und ich werde das umgehend erledigen. – Mit hinterlassenen Kommentaren hinterlegte IP-Adressen werden nach zwei Monaten automatisch gelöscht

publicly queryable