Intereting Posts
Сравнение дат из пользовательского поля Сделать текущую / активную страницу номер ссылки (WP_LINK_PAGES) отладка register_activation_hook () Посты URL-адреса, такие как site.com/category/the-post-title вставить запрос в пользовательскую таблицу с помощью ajax с плагином jQuery Jeditable Оценка двух планов безопасности WordPress против атаки на PHP-инъекцию Ошибка загрузки содержимого страницы с помощью Walker_Nav_Menu Начать разбиение на страницы с номера 1 по URL WordPress Multisite – может ли 2 домена совместно использовать базу данных пользователей? Если есть страница архива типа персонализированного сообщения Один файл для всех виртуальных, загружаемых версий продукта Как я могу обратиться к существующей категории? Как использовать таблицы списков сообщений WP по умолчанию в плагине? Сумма и количество значений настраиваемого поля Показать последнее последнее сообщение в категории на каждой странице категории архив

Получить URL для определенного типа сообщения и текущего тега

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

В моем единственном шаблоне для этой таксономии (я назвал ее «Темы»), скажем, если тема была «раком», мне бы хотелось, чтобы выпадающее меню выбора или список ссылок на каждый пользовательский тип сообщения С этим таксономическим ярлыком. Другими словами, если я показываю все сообщения, помеченные «раком» для каждого типа публикации (который у меня есть в настоящее время), этот раскрывающийся список или список ссылок в верхней части страницы позволят мне показывать только помеченные сообщения для каждого тип сообщения, как показано ниже:

Показаны сообщения с темой: Рак

Выберите тип публикации для просмотра сообщений по этой теме:

Тип сообщения 1 (ссылка)
Имя типа сообщения 2 (ссылка)
Тип типа сообщения 3 (ссылка)

(все сообщения, помеченные раком, уже отображаются здесь ...)

Тип сообщения 1 при щелчке снова загружает страницу единой таксономии, но перечисляет только сообщения, помеченные «раком» для этого типа сообщения. Это применимо к любому из нескольких десятков тегов для этой пользовательской таксономии, поэтому я не могу жестко закодировать URL-адрес. Он должен быть динамичным.

Я надеюсь в этом есть смысл. Я искал два дня на этом и до сих пор ничего не придумал. Любая помощь или руководство будут оценены. К сожалению, проект, над которым я работаю, закрыт, и я не могу поделиться ссылками. Я также использую плагин пользовательского Post Type UI (не по выбору), и я знаю, что плагин не работает хорошо с таксономиями, но я надеюсь, что мои руки не связаны здесь.

Приветствия.

Solutions Collecting From Web of "Получить URL для определенного типа сообщения и текущего тега"

Если URL-адрес таксономии «рак» в вашем примере выглядел так:

yourwebsite.com/topics/cancer/ 

то вы можете отфильтровать эти результаты по типу сообщений с URL-адресами, структурированными следующим образом:

 yourwebsite.com/topics/cancer/?post_type=question 

Просто поместите это в functions.php

 add_filter( 'pre_get_posts', 'wp123_post_type_by_taxonomy' ); function wp123_post_type_by_taxonomy( $query ) { if( is_tax( 'topics' ) && $query->is_main_query() ) { // get all post types: $post_types = get_post_types(); // or add specific post types: // $post_types = array( 'post_type_1', 'post_type_2' ); if ( !empty( $_GET['post_type'] ) && post_type_exists( $_GET['post_type'] ) ) { // show only results for this post type $query->set( 'post_type', $_GET['post_type'] ); } else { // show all results $query->set( 'post_type', $post_types ); } } } 

Согласно тому, что я понимаю, это:

В вашем taxonomy.php

Добавьте этот код:

  $term = get_term_by( 'slug', get_query_var('term'), get_query_var('taxonomy') ); echo '<h2>Showing posts with topic : ' . $term->name .'</h2>'; 

Это приведет к показу «Показаны сообщения с темой: Рак»

Теперь для (все сообщения, помеченные раком, уже отображаются здесь …)

Вы можете запустить get_posts (), чтобы получить следующее:

 $all_post = get_posts(array( 'post_type' => array( 'cpt1', 'cpt2', 'cpt3', 'post' ), // all cpt slug name 'numberposts' => -1, // number of post 'tax_query' => array( array( 'taxonomy' => get_query_var( 'taxonomy '), // current tax name 'field' => 'id', 'terms' => $term->term_id, // current tax_id ) ) ); 

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