it-swarm.com.de

Wie liste ich benutzerdefinierte Taxonomiebegriffe ohne die Links auf?

Ich habe weit und breit gesucht, um eine Antwort auf meine Frage zu finden. Ich hoffe, ich kann hier Hilfe bekommen. Hier geht...

Momentan rufe ich die Bedingungen meiner benutzerdefinierten Taxonomie ab, indem ich Folgendes verwende:

<?php echo get_the_term_list( $post->ID, 'skills', '<ul><li>', '</li><li>', '</li></ul>' ); ?>

Ich versuche, dieselben postspezifischen benutzerdefinierten Taxonomiebegriffe in einer Liste abzurufen, ohne dass sie als Links ausgegeben werden. Ich habe alle folgenden "Lösungen" ausprobiert, aber keine von ihnen funktioniert. Jede Hilfe wäre dankbar.

Gibt die postspezifischen Begriffe in einer langen Zeichenfolge zurück, die nicht in eine Liste aufgenommen werden kann:

$terms_as_text = get_the_term_list( $post->ID, 'skills', '<ul><li>', '</li><li>', '</li></ul>' ) ;
echo strip_tags($terms_as_text);

Gibt eine Liste aller verwendeten Begriffe für alle benutzerdefinierten Beitragstypen zurück:

<ul>
<?php $args = array( 'taxonomy' => 'skills', 'orderby' => 'ID', 'order' => 'ASC' );
$categories = get_categories( $args );
foreach($categories as $category) { echo '<li> '. $category->name . '</li>'; } 
                ?>
</ul>

Gibt nichts zurück:

<?php $args = array('orderby' => 'name', 'order' => 'ASC', 'fields' => 'all');
wp_get_object_terms( $post->ID, $skills, $args );
?>

Ich habe sogar get_the_terms, get_terms und get_categories ohne Erfolg ausprobiert.

3
Certified K

Kann das mal probieren:

$terms = get_the_terms ($post->id, 'skills');
if ( !is_wp_error($terms)) : ?>

<?php 
    $skills_links = wp_list_pluck($terms, 'name'); 

    $skills_yo = implode(", ", $skills_links);
    ?>

    <span><?php echo $skills_yo; ?></span>
10
Wyck
$terms = wp_get_post_terms($post->ID, 'TAXONOMYNAME');
$count = count($terms);
if ( $count > 0 ) {
    foreach ( $terms as $term ) {
        echo $term->name . ", ";
    }
}
4
Henry

Benutze einfach strip_tags

<?php echo strip_tags(get_the_term_list( $post->ID, 'CUSTOM-TAXONOMY', ' ',', ')); ?>
2
Pete

Ich bin gestern auf ein ähnliches Problem gestoßen und habe die folgende Lösung gefunden:

function taxonomy_list( $taxonomy ) {
    $args = array('order'=>'ASC','hide_empty'=>false);
    $terms = get_terms( $taxonomy, $args );
    if ( $terms ) {
        printf( '<ul name="%s">', esc_attr( $taxonomy ) );
        foreach ( $terms as $term ) {
            printf( '<li>%s</li>', esc_html( $term->name ) );
        }
        print( '</ul>' );
    }
}

Fügen Sie dann einfach <?php taxonomy_list( 'TAXONOMY ID' ); ?> in Ihre Vorlagendatei ein und ersetzen Sie TAXONOMY ID durch den Namen der Taxonomie.

Meine ursprüngliche Verwendung bestand darin, eine Liste der Jobkategorien zu erstellen, die ich auf meiner Jobbörse habe. Jeder von ihnen ist dann mit dem Archiv der Taxonomie verknüpft. Sie können die volle Funktion in meiner Antwort auf meine eigene Stackoverflow-Frage sehen .

1
tristanojbacon
function term_clean($postid, $term)
{
    $terms = get_the_terms($postid, $term); 
    foreach ($terms as $term) {  echo $term->name;   };

}
1
Giovanni DUarte

Wenn Sie nur möchten, dass die Begriffe einem bestimmten Beitrag zugewiesen werden:

<?php $object_terms = wp_get_object_terms( $post_id, 'skills', array( 'fields' => 'names' ) );
if ( $object_terms ) { ?><ul><li><?php echo implode( '</li><li>', $object_terms ); ?></li></ul><?php } ?>

Wenn Sie ALLE Begriffe möchten:

<?php $all_terms = get_terms( 'skills', array( 'fields' => 'names' ) );
if ( $all_terms ) { ?><ul><li><?php echo implode( '</li><li>', $all_terms ); ?></li></ul><?php } ?>
1
Rachel Carden
// to display taxonomy terms without links: separated with commas
// copy this code in your function.php

function get_taxonony_toDisplay($post_id, $taxonomy_name) {
$terms = wp_get_post_terms($post_id, $taxonomy_name);
$count = count($terms);
if ( $count > 0 ) {
    foreach ( $terms as $term ) {
        echo $term->name . ", ";
    }
}
}

Da ich 3 durch Kommas getrennte Taxonomien anzeigen musste, habe ich eine Funktion mit Henrys Code erstellt.

Verwenden Sie zum Anzeigen die folgende Zeile:

<?php get_taxonony_toDisplay($post->ID, 'your_taxonomy_name' ); ?> 
0

Wenn Sie die Begriffe nicht nach Namen, sondern nach Schnecke sortieren möchten, verwenden Sie diese Option ...

<?php if(has_term('', 'CUSTOM-TAX')) {?> 
<?php
    $custom_terms = get_the_terms( get_the_ID(), 'CUSTOM-TAX' );
    // Make sure we have terms and also check for WP_Error object
    if (    $product_terms
    && !is_wp_error( $product_terms )
    ) {
    @usort( $product_terms, function ( $a, $b )
    {
    return strcasecmp( 
    $a->slug,
    $b->slug
    );
    });
    // Display your terms as normal
    $term_list = [];
    foreach ( $custom_terms as $term ) 
    //$term_list[] = esc_html( $term->name );  // comment this line out if you want the terms linked  and visa versa
    $term_list[] = '<a href="' . get_term_link( $term ) . '">' . esc_html( $term->name ) . '</a>'; // comment this line out if you DON'T want the terms linked and visa versa
    echo implode( ', ', $term_list );
    }
?>                          
<?php } else { ?><?php }?>
0
Pete