get_terms: determinați dacă termenul taxonomiei are termeni copil
Caut o modalitate de a determina dacă un termen de taxonomie are termeni copil. Vedeți codul de mai jos și vă voi explica ce vreau să spun:
<?php
$terms = get_terms("wpsc_product_category");
if ( !empty( $terms ) && !is_wp_error( $terms ) ){
foreach( get_terms( 'wpsc_product_category', array( 'hide_empty' => false, 'parent' => 0 ) ) as $parent_term ) { ?>
<li class="header-menu-item" data-hook="<?php echo $parent_term->slug; ?>">
<a href="<?php echo home_url(); ?>/products/<?php echo $parent_term->slug; ?>"><?php echo $parent_term->name; ?></a>
</li>
<?php }
} ?>
Acest cod afișează o listă cu toți termenii părinte pentru taxonomia wpsc_product_category
, dar vreau să determin dacă termenul taxonomiei are termeni copil sau nu, și dacă da, să adaug clasa parent
la elementul header-menu-item
corespunzător, astfel încât să pot atașa o funcție jQuery la acesta. Nu sunt sigur dacă acest lucru este posibil? Orice sugestii ar fi foarte apreciate!

Funcția get_term_children
ar trebui să ajute aici.
Aceasta returnează un array, fie cu termenii copil în interior, fie gol. Verificând dacă acest array este adevărat sau nu în timp ce parcurgeți, vă va permite să determinați dacă să adăugați clasa sau nu.
<?php
$terms = get_terms('wpsc_product_category');
if ( !empty( $terms ) && !is_wp_error( $terms ) ){
foreach( get_terms( 'wpsc_product_category', array( 'hide_empty' => false, 'parent' => 0 ) ) as $parent_term ) {
$term_children = get_term_children($parent_term->term_id, 'wpsc_product_category'); ?>
<li class="header-menu-item<?php echo ($term_children ? ' parent' : ''); ?>" data-hook="<?php echo $parent_term->slug; ?>">
<a href="<?php echo home_url(); ?>/products/<?php echo $parent_term->slug; ?>"><?php echo $parent_term->name; ?></a>
</li>
<?php }
} ?>

Poți încerca să utilizezi get_term_children pentru a genera un array cu toți copiii acelei taxonomii, apoi să verifici dacă este gol cu empty().
Deoarece returnează un array gol, ar trebui să poți face ceva de genul acesta:
(Va trebui să afli id-ul termenului tău, care este un număr, și să-l înlocuiești în variabila $term_id de mai jos)
$term_id = 2;
$taxonomy_name = 'wpsc_product_category';
$terms = get_term_children( $term_id, $taxonomy_name );
if ( !empty( $terms ) && !is_wp_error( $terms ) ){
// faci ce ai de făcut
}
