Intereting Posts
Создание страницы администрирования WordPress без меню для плагина ElasticPress – содержимое сообщения не отображается после пользовательского поиска Разбивка страницы – не прогрессирует как включить другие плагины css-файлы в короткий код? TinyMCE – как выбрать узел тэгов с места, где находится каретка? Я не могу отобразить шаблон поиска, созданный из пользовательского типа post Добавление пользовательского поля, которое будет использоваться Posts 2 Posts добавить пользовательскую опцию в раскрывающееся меню get_categories В детской теме mo и po не работает Пользовательский профиль пользователя, регистрация, страница входа с темой Не показывать один конкретный виджет на одной конкретной странице Сбросить переходный период в новый день Как получить боковые виджеты в шаблоне левой панели Применение настраиваемого фильтра вместо the_content не отображает вставки Меню «Условное Навигационное меню» Меню «Внутри» на разных сайтах Multisite

Как я могу запросить пользовательский тип сообщения с пользовательской таксономией?

По какой-то причине я нахожу борьбу за любые посты, используя обычную таксономию … может ли кто-нибудь разгадать мою глупость?

$args = array( 'post_type' => 'adverts', 'advert_tag' => 'politics' // Doesn't seem to work. ); query_posts($args); while ( have_posts() ) : the_post(); //Show Posts endwhile; 

Декларация о таксономии:

 add_action( 'init', 'add_custom_taxonomy', 0 ); function add_custom_taxonomy() { register_taxonomy('advert_tag', 'Adverts', array( 'hierarchical' => true, 'labels' => array( 'name' => _x( 'Advert Tags', 'taxonomy general name' ), 'singular_name' => _x( 'Advert Tag', 'taxonomy singular name' ), 'search_items' => __( 'Search Advert Tags' ), 'all_items' => __( 'All Advert Tags' ), 'parent_item' => __( 'Parent Advert Tag' ), 'parent_item_colon' => __( 'Parent Advert Tag:' ), 'edit_item' => __( 'Edit Advert Tag' ), 'update_item' => __( 'Update Advert Tag' ), 'add_new_item' => __( 'Add New Advert Tag' ), 'new_item_name' => __( 'New Advert Tag Name' ), 'menu_name' => __( 'Advert Tags' ), ), 'rewrite' => array( 'slug' => 'advert-tags', 'with_front' => false, 'hierarchical' => true ), )); } 

Пользовательская декларация типа сообщения:

  add_action( 'init', 'create_post_type' ); function create_post_type() { register_post_type( 'Adverts', array( 'labels' => array( 'name' => __( 'Adverts' ), 'singular_name' => __( 'Advert'), 'add_new' => __( 'Add New' ), 'add_new_item' => __( 'Add a New Advert' ), 'edit' => __( 'Edit' ), 'edit_item' => __( 'Edit Advert' ), 'new_item' => __( 'New Advert' ), 'view' => __( 'View' ), 'view_item' => __( 'View Advert' ), 'search_items' => __( 'Search Adverts' ), 'not_found' => __( 'No Adverts found' ), 'not_found_in_trash' => __( 'No Adverts found in Trash' ), ), 'supports' => array( 'title', 'thumbnail', ), 'has_archive' => true, 'menu_position' => 10, 'public' => true, 'rewrite' => array( 'slug' => 'adverts' ), 'taxonomies' => array('advert_tag') ) ); 

}

Firs из всех не используют query_posts() , более подробно читайте здесь: когда вы должны использовать WP_Query vs query_posts () и get_posts ()? ,

Вы должны использовать WP_Query для получения сообщений о том, что вам нужно. Прочитайте документацию . В вашем случае запрос может быть следующим:

 $the_query = new WP_Query( array( 'post_type' => 'Adverts', 'tax_query' => array( array ( 'taxonomy' => 'advert_tag', 'field' => 'slug', 'terms' => 'politics', ) ), ) ); while ( $the_query->have_posts() ) : $the_query->the_post(); // Show Posts ... endwhile; /* Restore original Post Data * NB: Because we are using new WP_Query we aren't stomping on the * original $wp_query and it does not need to be reset. */ wp_reset_postdata(); 

Я использую этот запрос для получения пользовательских сообщений (часто задаваемых вопросов) со своей пользовательской таксономией (faq_category). поскольку параметр {таксономия} в аргументах WP_Query устарел с версии v.3.1 и ввел {tax_query}. ниже приведен код, который отлично работает.

 $query = new WP_Query( array( 'post_type' => 'faqs', // name of post type. 'tax_query' => array( array( 'taxonomy' => 'faq_category', // taxonomy name 'field' => 'term_id', // term_id, slug or name 'terms' => 48, // term id, term slug or term name ) ) ) ); while ( $query->have_posts() ) : $query->the_post(); // do stuff here.... endwhile; /** * reset the orignal query * we should use this to reset wp_query */ wp_reset_query();