К какой должности относится термин таксономии?

У меня есть страница, на которой отображаются все пользовательские термины таксономии для определенного типа, который я получаю из URL. Я использую этот код для извлечения всех условий:

$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 ); 

Все это работает отлично, но затем я хочу создать ссылку, нажимая на каждое из условий, чтобы перенаправить обратно на исходный пользовательский пост, к которому он принадлежит.

Позвольте мне привести пример: пользовательский тип сообщения «Programblock» с идентификатором 19, имеет три пользовательских термина таксономии, которые называются «событиями». Три условия указаны на вышеупомянутой странице, но затем я хочу создать ссылку, которая возвращает их на страницу пользовательского типа сообщений «Программный блок» с идентификатором post, как hashtag, например: http: //www.my-domain .com / programblock # 19

Как я могу отменить это? Вместо того, чтобы спрашивать: «Какие термины у этого сообщения есть», я хочу спросить: «Какое сообщение принадлежит этому термину».

Надеюсь, я объяснил себе достаточно ясно, иначе спросите.

душевный
– Mestika

Вы можете сделать это, используя фильтр term_link. Что-то примерно следующее:

 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; , 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;