it-swarm.com.de

Holen Sie sich Begriff Slug des aktuellen Beitrags

Ich arbeite an einer einzelnen Beitragstypvorlage, in der ein Navigationsmenü mit Links zu allen Beiträgen desselben Begriffs angezeigt wird.

Jetzt möchte ich diese Vorlage für alle verschiedenen Begriffe verwenden, sodass $ term_slug den Begriff slug des aktuellen Beitrags enthalten muss, damit sie den anderen Beiträgen entsprechen können.

Ich habe diesen Code oft über das Internet gefunden, um die Aufgabe zu erledigen, aber er funktioniert bei mir nicht:

$terms = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
$term_slug = $term->slug;

Dieser Artikel besagt, dass dies die Arbeit erledigen würde: http://www.wpbeginner.com/wp-themes/how-to-show-the-current-taxonomy-title-url-and-more-in-wordpress/

Was mache ich falsch?

$args = array(
    'post_type'     => 'myposttype',
    'mytaxonomy'    => $term_slug,
    'order'         => 'ASC'
);              

$current_id = get_the_ID();
$the_query = new WP_Query( $args );
if($the_query->have_posts() ) {
    while ($the_query->have_posts()) { $the_query->the_post();

        echo '<li><a' . ($current_id == $post->ID ? ' class="current"' : '') . ' href=" ' . get_permalink() . ' ">' . get_the_title() . '</a></li>'; 

    } 
}
2
Robbert

Ihr Code funktioniert auf einer Seite, auf der ein Begriff abgefragt wird (ein Taxonomiebegriffsarchiv), nicht auf einem einzelnen Beitrag.

Für einen einzelnen Beitrag müssen Sie die zu diesem Beitrag gehörenden Begriffe abrufen.

$terms = get_the_terms( $post->ID, 'your-taxonomy' );
if ( !empty( $terms ) ){
    // get the first term
    $term = array_shift( $terms );
    echo $term->slug;
}
15
Milo

Der folgende Code funktioniert gut, wenn mehrere Begriffe angezeigt werden sollen :-

echo get_the_term_list( 
    $post->ID, 
    'styles', 
    '<ul class="styles"><li>', 
    ',</li><li>', 
    '</li></ul>' 
); 
0
Sanj2cool