Skrevet d. 8. oktober 2020 af Lennart Christensen

How To Get The Primary Category Of Woocommerce product category

Hi, I’m Lennart. WordPress developer from Denmark. I write in Danish, but the piece of code itself is universal and can be understood outside Denmark as well 😀

Sådan henter du og viser den primære kategori for et produkt i WooCommerce

Der er ikke en core funktion i WordPress at vise primær kategori, men hvis du har installeret Yoast SEO-plugin, så vises en ny funktion i kategorien som gør det muligt at vælge den primære kategori. I lyset af denne primære kategorifunktion vil vi nogle gange gerne hente den ene primære kategori, og ikke blot den første eller dem alle som indlægget eller i dette tilfælde produktet er tilknyttet.

Når vi så vælger mere end en kategori for et produkt, får vi mulighed for at gøre en af dem primær. Om et indlæg, produkt, eller tredje post type, skal have flere kategorier tilknyttet eller ej, er en anden diskussion. Men ofte opstår behovet for at omstrukturere en brødkrumme, post-meta-layout osv., Og vi ønsker kun at vise den primære kategori.

I dette indlæg har jeg inkluderet en funktion som viser dig, hvordan du kun hente den primære WooCommerce produkt-kategori for et Produkt.

I funktionen er der lavet en fallback. Kan den for eksempel ikke finde Yoast Seo konfigureret eller er der ikke sat en primær kategori for produktet, så tager den den første kategori den kan finde for det enkelte produkt. Funktionen kan eventuelt udbygges til også at give et resultat hvis der slet ikke er sat en kategori på produktet.

Du kan bruge nedenstående funktion til at hente den primære kategori:

/*--------------------------------------------------------------
Get primary Category @lennartc
--------------------------------------------------------------*/
function getprimcat() {
		$category = wp_get_post_terms( get_the_id(), 'product_cat' );
	$term = false;
	if ( class_exists('WPSEO_Primary_Term') || $category) {
		$wpseo_primary_term = new WPSEO_Primary_Term( 'product_cat', get_the_id() );
		$wpseo_primary_term = $wpseo_primary_term->get_primary_term();
		$term               = get_term( $wpseo_primary_term );
		if ($wpseo_primary_term) {
			$term = get_term( $wpseo_primary_term );
			$category_display = $term->name;
		}else {
			$category_display = $category[0]->name;
		}
	}
	return $category_display;
}

For at gøre koden genanvendelig skal du placerer funktionen i din functions.php i dit WordPress tema. For at outputte den primære kategori i hjemmesidens frontend, skal du blot bruge følgende:

echo getprimcat()