Wie kann ein Begriff von get_terms nach dem Begriffsnamen und nicht nach der Begriffs-ID ausgeschlossen werden?

Lesezeit: 3 Minuten

Benutzeravatar von JZ
JZ

Mein Code unten. Es funktioniert nicht, mit den Begriffen zu löschen. Ich brauche es, um so zu funktionieren und nicht nach ID zu löschen.

$terms = get_terms( 'MY_TAXONOMY', array( 
                        'orderby' => 'name',
                        'order'   => 'ASC',
                        'exclude'  => array(),
) );
$exclude = array("MY TERM", "MY TERM 2", "MY TERM 3");
$new_the_category = '';
foreach ( $terms as $term ) {
    if (!in_array($term->term_name, $exclude)) {
        $new_the_category .= '<div class="post hvr-grow"><li><strong><a id="lista" href="'.esc_url( get_term_link( $term ) ) .'">'.$term->name.'</a>'. ' ('. $term->count . ')</strong></li></div>';
    }
}
echo substr($new_the_category, 0);

Ihr Code funktioniert gut, muss nur ersetzt werden $term->term_name zu $term->name dann sollte es gut funktionieren. siehe unten Code als Referenz.

$terms = get_terms( 'MY_TAXONOMY', array( 
                        'orderby' => 'name',
                        'order'   => 'ASC',
                        'exclude'  => array(),
) );
$exclude = array("MY TERM", "MY TERM 2", "MY TERM 3");
$new_the_category = '';
foreach ( $terms as $term ) {
if (!in_array($term->name, $exclude)) {
$new_the_category .= '<div class="post hvr-grow"><li><strong><a id="lista" href="'.esc_url( get_term_link( $term ) ) .'">'.$term->name.'</a>'. ' ('. $term->count . ')</strong></li></div>';
}
}
echo substr($new_the_category, 0);

Sie können die bekommen term_ids von denen, die Sie mit ausschließen möchten get_term_by() auf die Bedingungen, die Sie weglassen möchten. Dann können Sie diese IDs als Exclude-Argument übergeben.

Als Anmerkung das Zweite $args Array ein get_terms() ist veraltet, also sollten Sie umziehen MY_TAXONOMY in die Argumente mit der Taste taxonomy.

Ich bin mir auch nicht sicher, warum Sie eine Teilzeichenfolge ausgeben, die bei 0 ohne Endpunkt beginnt, also habe ich das entfernt. Ich habe auch die Variablenverkettung entfernt und nur die Zeichenfolge in der foreach-Schleife wiederholt.

$exclude_ids   = array();
$exclude_names = array("MY TERM", "MY TERM 2", "MY TERM 3"); // Term NAMES to exclude

foreach( $exclude_names as $name ){
    $excluded_term = get_term_by( 'name', $name, 'MY_TAXONOMY' );
    $exclude_ids[] = (int) $excluded_term->term_id; // Get term_id (as a string), typcast to an INT
} 

$term_args = array(
    'taxonomy' => 'MY_TAXONOMY',
    'orderby' => 'name',
    'order'   => 'ASC',
    'exclude' => $exclude_ids
);

if( $terms = get_terms( $term_args ) ){
    // If we have terms, echo each one with our markup.
    foreach( $terms as $term ){
        echo '<div class="post hvr-grow"><li><strong><a id="lista" href="'.esc_url( get_term_link( $term ) ) .'">'.$term->name.'</a>'. ' ('. $term->count . ')</strong></li></div>';
    }
}

  • Vielen Dank! Ihr Code funktioniert auch, aber ich entscheide mich für die Anpassung von @Mukesh Panchal.

    – JZ

    23. Juni 2018 um 19:46 Uhr

1427670cookie-checkWie kann ein Begriff von get_terms nach dem Begriffsnamen und nicht nach der Begriffs-ID ausgeschlossen werden?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy