Intereting Posts
Получить количество настраиваемых типов сообщений, созданных текущим пользователем Почему формат перманентного месяца и имени не работает на моем новом сайте WordPress (работает на IIS7)? Автоматизация создания страницы WP API Получать сообщение с именами тегов вместо идентификаторов тегов Есть много мета для сообщений, лучше ли получать все сразу или каждый по отдельности Есть ли способ для плагина получить собственный номер версии? Отображение рендеринга меню навигации в Windows 10 Переменные продукты как пользовательские типы сообщений Как контролировать, какая категория будет выбрана для пули сообщения? Существуют ли риски безопасности при работе непосредственно в папке тем, которая встроена в папку темы? Как добавить отображение / скрытие в настройках навигации для страниц Как получить список тем через REST api? Изображение не отображается на шаблоне страницы в Twenty 15-theme как ограничить количество просмотров в месяц / ежегодно для участников? API Google Maps в WordPress

Проблема с пользовательским виджетами WP_Query

У меня есть все, что работает над моим виджетами, кроме результатов! Я создал таксономию, называемую названиями стран, которые мы используем для нескольких пользовательских типов сообщений. Я создал этот виджет для отображения путеводителей (CPT) из выбранной страны.

Виджет работает правильно на заднем конце, но я не получаю никаких результатов на лицевой части (т. Е. «Нет списка найденных»). Я повторил экземпляр $ на экране, и это правильно, поэтому мои аргументы или запрос должны быть неверными. Может кто-нибудь сказать почему?

Вот код:

function widget($args, $instance) { extract( $args ); $title = apply_filters('widget_title', $instance['title']); $thiscountry = $instance['thiscountry']; $before_widget = '<!-- '.$thiscountry.' -->'; echo $before_widget; if ( $title ) { echo $before_title . $title . $after_title; } $this->getTourGuides($thiscountry); echo $after_widget; } function getTourGuides($thiscountry) { //html global $post; $args = array( 'posts_per_page' => -1, 'post_type' => array( 'tourguides' ), 'tax_query' => array( array( 'taxonomy' => 'countryname', 'field' => 'name', // also tried 'slug' 'terms' => $thiscountry, ), ), ); //echo $thiscountry; $listings = new WP_Query( $args); if($listings->found_posts > 0) { echo '<ul class="guides_widget">'; while ($listings->have_posts()) { /* Get custom post type fields */ $ecpt_website = get_post_meta( get_the_ID(), 'ecpt_website', true ); $listings->the_post(); $listItem = '<li>'; $listItem .= '<a href="' . $ecpt_website . '">'; $listItem .= get_the_title() . '</a>'; $listItem .= '</li>'; echo $listItem; } // end while echo '</ul>'; wp_reset_postdata(); }else{ echo '<p style="padding:25px;">No listing found</p>'; } } 

Код для экземпляра:

 // constructor function __construct() { parent::__construct( 'btn_tour_guides_by_country', // Base ID 'BTN Tour Guides by Country', // Name array('description' => __( 'Display List of Tour Guides by Country in a Sidebar')) ); } function update($new_instance, $old_instance) { $instance = $old_instance; $instance['title'] = strip_tags($new_instance['title']); $instance['thiscountry'] = strip_tags($new_instance['thiscountry']); return $instance; } // widget form creation function form($instance) { if( $instance) { $title = esc_attr($instance['title']); $thiscountry = esc_attr($instance['thiscountry']); } else { $title = 'Tour Operators'; $thiscountry = ''; } ?> <p> <label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:'); ?></label> <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" /> </p> <p> <label for="<?php echo $this->get_field_id('thiscountry'); ?>"><?php _e('Country:'); ?></label> <select id="<?php echo $this->get_field_id('thiscountry'); ?>" name="<?php echo $this->get_field_name('thiscountry'); ?>"> <?php $taxonomy = 'countryname'; $queried_term = get_term_by( 'slug', get_query_var($taxonomy) ); $terms = get_terms($taxonomy); //echo $term->slug; if ( $terms !== 0 ) { foreach ( $terms as $term ) {?> <?php echo '<option '.selected($instance['thiscountry'], $term->name).' value="' . $term->name . '" id="' . $term->name . '">', $term->name, '</option>'; ?> <?php } } ?> <?php ?> </select> </p> <?php } 

Solutions Collecting From Web of "Проблема с пользовательским виджетами WP_Query"

Я нашел ответ здесь. У них была одна и та же проблема: использование tax_query отменяет мой аргумент post_type в пользовательском WP_Query

Это проблема с плагином Easy Content Types. Пиппин, автор этого плагина, написал следующее: Проблема вызвана функцией в плагине, которая помогает разрешить таксономический архив 404s. У этого есть пара проблем, и из-за них есть установка, чтобы отключить функцию. Перейдите в «Типы содержимого»> «Настройки» и установите флажок «Отключить фиксацию архива таксономии». – Пиппин 11 мая '12 в 0:03