Запрос сообщений по пользовательскому идентификатору таксономии - PullRequest
4 голосов
/ 07 октября 2011

У меня есть пользовательский тип записи с именем portfolio и пользовательская таксономия с именем build-type (действующая как категории)

Я пытаюсь запросить portfolio сообщений по build-type ID, например. все сообщения Портфолио в "Гостиницы" (id = 4 для этой таксономии)

// gets the ID from a custom field to show posts on a specific page   
$buildType = get_post_meta($post->ID, 'build_type_id', true);
// run query
query_posts(array( 
    'post_type' => 'portfolio',
    'showposts' => -1,
    'tax_query' => array(
        'taxonomy' => 'build-type',
        'terms' => $buildType,
        'field' => 'term_id'
    ),
    'orderby' => 'title',
    'order' => 'ASC'
));

В настоящее время он вызывает все portfolio сообщения, а не только те, которые build-type ID

Для 'field' => 'term_id' я должен использовать term_id, tag_ID, id или что-то еще?

Кто-нибудь знает, как заставить это работать?

Заранее спасибо!

Ответы [ 2 ]

15 голосов
/ 19 октября 2011

Я решил это с помощью: https://wordpress.stackexchange.com/questions/30476/query-posts-by-custom-taxonomy-id

tax-query должен быть массивом массивов

Окончательное решение:

// gets the ID from a custom field to show posts on a specific page
$buildType = get_post_meta($post->ID, 'build_type_id', true);
// run query
query_posts(array( 
    'post_type' => 'portfolio',
    'showposts' => -1,
    'tax_query' => array(
        array(
            'taxonomy' => 'build-type',
            'terms' => $buildType,
            'field' => 'term_id',
        )
    ),
    'orderby' => 'title',
    'order' => 'ASC' )
);

ВклGithub здесь:

https://gist.github.com/1275191

0 голосов
/ 18 октября 2011

Я не WP-гури, и я потратил часы и часы, пытаясь решить ту же проблему. В конце концов я нашел это сообщение в блоге: http://richardsweeney.com/blog/wordpress-3-0-custom-queries-post-types-and-taxonomies/

Ответ несколько полусреден: очевидно, вы не можете фильтровать таким образом для пользовательских типов сообщений (это возможно только для сообщений), что является позором!

То, чем я занимался, было так:

$ args ['custom_tax'] = 'custom_tax_slug'; query_posts ($ арг);

Надеюсь, это поможет!

// Mike

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...