Intereting Posts
Как удалить доступ к пользовательскому интерфейсу в пользовательский тип сообщения с помощью прямых ссылок? Добавить пользовательские атрибуты в сообщение Отображение имени пользователя и биографии авторов на пользовательском author.php контактная форма 7 не отображается после обновления WP_Query и два настраиваемых поля не возвращают сообщений Вызов последних сообщений из настраиваемой группы полей для отображения на первой странице Параметры темы темы WordPress Страница Виджета отсутствует в меню, а виджеты по умолчанию не отображаются Страница «Параметры администратора». Сохранить как массив Получать нестандартный размер эскизов Как обновить медиа-ссылки в WordPress после миграции? Резервное копирование только субдомена (многопозиционное) Как установить плагины темы wordpress? Несколько сайтов / домены с содержимым, управляемые единой установкой WordPress как мы можем получить список пользователей по роли в WordPress

Использование slug страницы в wp_query

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

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

<?php // $valuec = get_query_var($wp_query->query_vars['case-log']); // echo get_term_by('slug',$value,$wp_query->query_vars['case-log']); $terms = get_the_terms( $post->ID, 'case-log' ); if ( !empty( $terms ) ){ // get the first term $term = array_shift( $terms ); $casesearch = implode(",", $terms); echo $casesearch; echo $term->slug; } $args = array( 'post_type' => 'attorney', 'pagename' => $casesearch ); $case_attorney = new WP_Query( $args ); if ( $case_attorney->have_posts() ) : ?> <?php while ( $case_attorney->have_posts() ) : $case_attorney->the_post() ?> <div <?php post_class() ?>> <h2><?php the_title() ?></h2> </div> <?php endwhile ?> <?php else : ?> <h2>Ooops, no posts here!</h2> <?php endif ?> 

С приведенным выше я могу распечатать слизню, используя echo $ term-> slug ;, и цикл работает, но он просто выплескивает имя профиля каждого адвоката, похоже, пропуская второй аргумент.

Любая помощь очень ценится, спасибо!

UPDATE: полный код для шаблона боковой панели.

 <header class="caseh">Attorneys</header> <div class="caseattorneys"> <?php if( is_singular( "case" ) ) { //We are in single "case" view //Get the ID of current case post $case_id = get_queried_object_id(); // Set "post_type" agument for the query $args = array( 'post_type' => 'attorney' ); //Get the terms from case-log taxonomy //get_the_terms returns an array of terms, false or a WP_Error object $terms = get_the_terms( $case_id, 'case-log' ); if( ! is_wp_error( $terms ) && $terms ) { // Set "tax_query" agument for the query $args['tax_query'] = array( array( 'taxonomy' => 'case-log', 'terms' => $terms ), ); } $case_attorney = new WP_Query( $args ); } if ( $case_attorney->have_posts() ) : ?> <?php while ( $case_attorney->have_posts() ) : $case_attorney->the_post() ?> <div <?php post_class() ?>> <h2><?php the_title() ?></h2> </div> <?php endwhile ?> <?php else : ?> <h2>Ooops, no posts here!</h2> <?php endif ?> </div> <div class="morefeaturedcases"> <h3>More Featured Cases</h3> </div> <a href="/contact-us/" class="ccu">Contact Us</a> </aside> 

Solutions Collecting From Web of "Использование slug страницы в wp_query"

pagename для страницы запроса (основной тип сообщения) пули. То, что вы хотите, если я правильно понял, – это получить «адвокатские» сообщения, которые принадлежат к тем же case-log терминам, что и текущая «случайная» запись. Я бы сделал это примерно так (не знаю, где вы собираетесь выполнять код, я пытался кодировать как можно более универсально ):

 if( is_singular( "case" ) ) { //We are in single "case" view //Get the ID of current case post $case_id = get_queried_object_id(); // Set "post_type" agument for the query $args = array( 'post_type' => 'attorney' ); //Get the terms from case-log taxonomy //get_the_terms returns an array of term objects, false or a WP_Error object $terms = get_the_terms( $case_id, 'case-log' ); if( ! is_wp_error( $terms ) && $terms ) { $terms_ids = array(); foreach( $terms as $term ) { $terms_ids[] = $term->term_id; } // Set "tax_query" agument for the query $args['tax_query'] = array( array( 'taxonomy' => 'case-log', 'terms' => $terms_ids ), ); } $case_attorney = new WP_Query( $args ); if ( $case_attorney->have_posts() ) { while( $case_attorney->have_posts() ) { $case_attorney->the_post(); ?> <div <?php post_class() ?>> <h2><?php the_title() ?></h2> </div> <?php } wp_reset_postdata(); } else { echo "No matching attorney"; } }