L'utilisation correcte de wp_get_object_terms
-
16-10-2019 - |
Question
Résumé: Comment puis-je obtenir le nom et le permalien de l'objet retourné par wp_get_object_terms () ?
Detailled: J'ai créé un type de poste personnalisé appelé « ge_zielgruppe » et une taxonomie appelée « ge_zielgruppe_taxonomy ». Ce dernier peut être attaché à des postes et à « ge_zielgruppe » types de poste.
Sur la seule page de « ge_zielgruppe » Je veux montrer les derniers messages marqués avec le même « ge_zielgruppe_taxonomy ». J'ai réalisé cela avec
<?php
$theZielgruppe = wp_get_object_terms($post->ID, 'ge_zielgruppe_taxonomy');
$zielgruppe = new WP_Query(array('ge_zielgruppe_taxonomy' => $theZielgruppe->slug));
$zielgruppe->query('showposts=10');
if ($zielgruppe->have_posts()) :
while ($zielgruppe->have_posts()) :
$zielgruppe->the_post();
?>
<<--archive-stuff-->>
<?php
endwhile;
endif;
?>
Cette partie des travaux (cependant, je ne sais pas si elle est élégante).
Maintenant, je voudrais mettre un droit de lien après ces 10 postes, qui ressemble à ceci
<a href="<<--permalink to archive of 'ge_zielgruppe_taxonomy'-->>" rel="bookmark" title="More posts for <<--Name of 'ge_zielgruppe_taxonomy'-->>; ">More posts for <<--Name of 'ge_zielgruppe_taxonomy'-->></a>
Alors, comment puis-je obtenir
-
<<--permalink to archive of 'ge_zielgruppe_taxonomy'-->>
et -
<<--Name of 'ge_zielgruppe_taxonomy'-->>
La solution
Pour récupérer l'URL archive pour ce terme de taxonomie, utiliser quelque chose comme ça (j'utilise vos conventions de nommage ci-dessus, et en supposant que $theZielgruppe
est un objet terme.
$url = get_term_link( $theZielgruppe, 'ge_zielgruppe_taxonomy' );
Pour obtenir le nom, utilisez simplement
$theZielgruppe->name
Est-ce que vous cherchez?
EDIT
Le lien ci-dessus alors ressembler à ceci:
<a href="<?php echo get_term_link( $theZielgruppe, 'ge_zielgruppe_taxonomy' ); ?>" rel="bookmark" title="More posts for <?php echo $theZielgruppe->name; ?>; ">More posts for <?php echo $theZielgruppe->name; ?></a>
EDIT 2
wp_get_object_terms()
retourne un tableau de termes. Si vous avez changé chaque utilisation de $theZielgruppe
à $theZielgruppe[0]
d'utiliser le premier terme que le ge_zielgruppe
actuel concerne. Un avertissement, cependant: wp_get_object_terms()
peut retourner soit comme un tableau vide ou en tant que WP_Error
. Vous pouvez modifier votre code pour vérifier que:
<?php
$theZielgruppe = wp_get_object_terms($post->ID, 'ge_zielgruppe_taxonomy');
if( !empty( $theZielgruppe ) && !is_wp_error( $theZielgruppe ) ):
$theZielgruppe = $theZielgruppe[0];
$zielgruppe = new WP_Query(array('ge_zielgruppe_taxonomy' => $theZielgruppe->slug));
$zielgruppe->query('showposts=10');
if ($zielgruppe->have_posts()) :
while ($zielgruppe->have_posts()) :
$zielgruppe->the_post();
?>
<<--archive-stuff-->>
<?php
endwhile;
endif;
?>
<a href="<?php echo get_term_link( $theZielgruppe, 'ge_zielgruppe_taxonomy' ); ?>" rel="bookmark" title="More posts for <?php echo $theZielgruppe->name; ?>; ">More posts for <?php echo $theZielgruppe->name; ?></a>
<?php
endif;
?>