- This visual guide will show available default hooks for displaying custom content on a Woo single product page.
- Displaying custom content on a taxonomy archive page is sometimes dependent on the theme structure. Pods auto templates in the user interface hooks into get_the_archive_description, but check the templates or documentation for your theme if you are looking for other placements.
- As Jory noted, the_terms() will output HTML links to the brand terms, but it doesn’t return anything. So the shared code is working because output occurs at
$terms = the_terms(...
, while echo $terms
is outputting nothing. So just the_terms( get_the_ID(), 'brand' );
is sufficient to output term links.
- If you have saved the brand thumbnail or logo to a field with the name
μικρογραφ?α_μ?ρκα?
, then here is a full example which would add a brand thumbnail and band name as a linked figure and figcaption for the first brand of the product on the single product page:
<?php
/**
* Display a Woo product brand term and thumbnail with Pods.
* Εμφαν?στε ?ναν ?ρο και μια μικρογραφ?α τη? επωνυμ?α? προ??ντο? Woo με Pods
*
* @see https://www.businessbloomer.com/woocommerce-visual-hook-guide-single-product-page/
*/
add_action(
'woocommerce_before_single_product',
function() {
/**
* If the 'brand' taxonomy is not connected to the product post type, this will cause an error.
*
* Ε?ν η ταξιν?μηση τη? ?μ?ρκα?? δεν ε?ναι συνδεδεμ?νη με τον τ?πο αν?ρτηση? προ??ντο?,
* αυτ? θα προκαλ?σει σφ?λμα.
*/
foreach( (array) get_the_terms( get_the_ID(), 'brand' ) as $brand_term ) {
/**
* Start a link to the term taxonomy page.
*
* Ξεκιν?στε ?ναν σ?νδεσμο προ? τη σελ?δα ταξιν?μηση? ?ρου.
*/
printf(
'<figure><a href="%s">',
esc_url( get_term_link( $brand_term->term_id ) )
);
/**
* For the first matching brand, display images stored in field "μικρογραφ?α_μ?ρκα?", then stop.
*
* Για την πρ?τη μ?ρκα που ταιρι?ζει, εμφαν?στε τι? εικ?νε? που ε?ναι αποθηκευμ?νε? στο πεδ?ο "μικρογραφ?α_μ?ρκα?" και μετ? σταματ?στε.
*/
pods( 'brand', $brand_term->term_id )->display( 'μικρογραφ?α_μ?ρκα?' );
/**
* Display the term name and close the link.
*
* Εμφαν?στε το ?νομα του ?ρου και κλε?στε τον σ?νδεσμο.
*/
printf(
'<figcaption>%s</figcaption></a></figure>',
esc_html( $brand_term->name )
);
/**
* Removing 'break;' will cause more than one brand to display;
*
* Αφα?ρεση του ?break;? θα προκαλ?σει την εμφ?νιση περισσ?τερων απ? μ?α επωνυμι?ν.
*/
break;
}
}
);