Intereting Posts
wp_signon всегда передавал пароль, хотя пароль неверен Какие символы разрешены как тег короткого кода и как их следует дезинфицировать? Добавить пользовательский цвет текста WordPress 3.9 TinyMCE 4 Визуальный редактор Использование разбиения на страницы с помощью get_posts на странице Некоторые строки из файла .mo не загружаются Как разрешить авторам просматривать статистику за свои сообщения? как эхо метатег в заголовке с помощью php Добавить дату с детской темы и изменить размер шрифта на главной странице Пользовательский шаблон типа сообщения не вызывается Перенаправление после редактирования длинных статей Как создать заглавные изображения для разных сообщений? Попытка показать ссылку «Использовать как изображение» из окна «Вложение» из сценария t31os Редактор Wysiwyg не работает с 4.2.2 Создать пользователя из-за пределов WordPress через api? Показывать видео на главной странице для пользователей, которые не вошли в систему

Проблема с пользовательским виджетами 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