Ecco la funzione pronta all’uso spero possa essere utile, potete usarla sia all’interno del function, che dentro pagine, loop etc.
Codice step-by-step
Per prima cosa recuperiamo la categoria all’interno del loop in cui ci troviamo:
$category = get_the_category();
Per interrogare Yoast usiamo la classe WPSEO_Primary_Term (se esiste), altrimenti recuperiamo la prima categoria settata.
if ( class_exists('WPSEO_Primary_Term') )
{
$wpseo_primary_term = new WPSEO_Primary_Term( 'category', get_the_id() );
$wpseo_primary_term = $wpseo_primary_term->get_primary_term();
$term = get_term( $wpseo_primary_term );
if (is_wp_error($term)) {
$category_display = $category[0]->name;
$category_link = get_category_link( $category[0]->term_id );
} else {
$category_display = $term->name;
$category_link = get_category_link( $term->term_id );
}
}
else {
$category_display = $category[0]->name;
$category_link = get_category_link( $category[0]->term_id );
}
Infine ora che abbiamo sia il nome (category_display), sia il link(category_link) stampiamo l’html se è presente la categoria.
// Display category
if ( !empty($category_display) ){
if ( $useCatLink == true && !empty($category_link) ){
$html_category = '<a href="'.$category_link.'">'.htmlspecialchars($category_display).'</a>';
} else {
$html_category = htmlspecialchars($category_display);
}
}
Codice completo
// Funzione per recuperare categoria primaria di Yoast
$category = get_the_category();
$useCatLink = true;
if ($category){
$category_display = '';
$category_link = '';
if ( class_exists('WPSEO_Primary_Term') )
{
$wpseo_primary_term = new WPSEO_Primary_Term( 'category', get_the_id() );
$wpseo_primary_term = $wpseo_primary_term->get_primary_term();
$term = get_term( $wpseo_primary_term );
if (is_wp_error($term)) {
$category_display = $category[0]->name;
$category_link = get_category_link( $category[0]->term_id );
} else {
$category_display = $term->name;
$category_link = get_category_link( $term->term_id );
}
}
else {
$category_display = $category[0]->name;
$category_link = get_category_link( $category[0]->term_id );
}
// Display category
if ( !empty($category_display) ){
if ( $useCatLink == true && !empty($category_link) ){
$html_category = '<a href="'.$category_link.'">'.htmlspecialchars($category_display).'</a>';
} else {
$html_category = htmlspecialchars($category_display);
}
}
}//if category
Potete poi facilmente richiamarla dove desiderate all’interno del vostro template in questo modo:
<?php echo $html_category; ?>
Questo articolo ti è stato utile? Condividilo o fammi sapere cosa ne pensi nei commenti ! 🙂






