Wordpress, WP_Query с пользовательской таксономией и пользовательским типом записи - PullRequest
4 голосов
/ 15 апреля 2010

Этот код получает 10 сообщений всех типов, связанных с термином имя;

global $wp_query;
query_posts( array(  
    "taxonomy_name" => "term_name", 
    'showposts' => 10 ) 
);

Этот код получает 10 сообщений пользовательского типа сообщения "message";

global $wp_query;
query_posts( array(  
    'post_type' => 'message' 
    'showposts' => 10 ) 
);

Этот код, однако, всегда игнорирует требование post_type, но по-прежнему выбирает все типы записей, связанные с term_name;

global $wp_query;
query_posts( array(  
    'post_type' => 'message' ,
    "taxonomy_name" => "term_name",
    'showposts' => 10 ) 
);

Я не вижу, как оба могут работать по отдельности, но вместе они этого не делают, если только это не может быть ошибкой - есть мысли?

Ответы [ 3 ]

5 голосов
/ 16 апреля 2010

Похоже, ошибка. Вы пробовали пользовательский запрос на выбор ? Это должно сделать это:

$querystr = "
    SELECT * 
    FROM $wpdb->posts
    LEFT JOIN $wpdb->term_relationships ON($wpdb->posts.ID = $wpdb->term_relationships.object_id)
    LEFT JOIN $wpdb->term_taxonomy ON($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)
    LEFT JOIN $wpdb->terms ON($wpdb->term_taxonomy.term_id = $wpdb->terms.term_id)
    WHERE $wpdb->posts.post_type = 'message' 
    AND $wpdb->posts.post_status = 'publish'
    AND $wpdb->term_taxonomy.taxonomy = 'taxonomy_name'
    AND $wpdb->terms.slug = 'term_name'
    ORDER BY $wpdb->posts.post_date DESC
    LIMIT 10
    ";

$pageposts = $wpdb->get_results($querystr, OBJECT);

Я использовал этот ответ при построении запроса.

1 голос
/ 16 апреля 2010

Отправлено - core.trac.wordpress.org/ticket/13020. Fix - это просто изменение одной строки файла query.php на оператор if и if, чтобы проверить, является ли post_type пустым.

0 голосов
/ 15 июля 2013

Используйте 'category_name' вместо 'taxonomy_name'. Работает на WP 3.5.2

query_posts( array(  
    'post_type' => 'message',
    'category_name' => 'term_name',
    'showposts' => '10' ) 
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...