J'ai une page qui affiche tous les termes de taxonomie personnalisés pour un type particulier que je reçois à partir de l'URL. J'utilise ce code pour récupérer tous les termes:
$args = array(
'post_type' => 'mycustomposttype',
'programtype' => ’my-custom-taxonomy-term
);
$programtype = new WP_Query($args);
while ( $programtype->have_posts() ) : $programtype->the_post();
$terms = get_the_terms( $post->ID, 'my-custom-taxonomy );
Tout cela fonctionne parfaitement, mais je souhaite ensuite créer un lien lorsque vous appuyez sur chacun des termes pour rediriger vers la publication personnalisée originale à laquelle il appartient.
Permettez-moi de vous donner un exemple: le type de publication personnalisé "Programblock" avec l'ID 19 est associé à trois termes de taxonomie personnalisés, appelés "événements". Les trois termes sont répertoriés sur la page mentionnée ci-dessus, mais je souhaite ensuite créer un lien les ramenant à la page de type de message personnalisée "Programblock" avec l'ID de message sous forme de hashtag, comme suit: http://www.my-domain.com/programblock#19
Comment puis-je inverser la situation au lieu de demander "De quels termes est-ce que cette publication a", je veux demander, "À quelle publication appartient ce terme".
J'espère m'être expliqué assez clairement, sinon demandez s'il vous plaît.
Sincère
- Mestika
Vous pouvez le faire en utilisant le filtre term_link. Quelque chose à peu près comme suit:
function my_term_link($termlink, $term, $taxonomy) {
global $post;
if ($taxonomy == 'my-custom-taxonomy') {
return get_permalink( $post->ID ) . '#' . $term->term_id;
}
}
while ( $programtype->have_posts() ) : $programtype->the_post();
$terms = get_the_terms( $post->ID, 'my-custom-taxonomy' );
add_filter('term_link', 'my_term_link', 10, 3);
foreach ($terms as $term) {
$link = get_term_link( $term, 'my-custom-taxonomy' );
// Use link here
}
remove_filter('term_link', 'my_term_link', 10, 3);
endwhile;