2013-11-20 4 views
0

У меня есть следующий код в файле шаблона Wordpress (тема Goodwork), который выводит список сообщений.Wordpress не извлекает определенную категорию

$args = array('posts_per_page' => $v_filter == 'true' ? -1 : 12, 
     'offset'=> 0, 
     'paged' => $paged, 
     'portfolio_category' => $custom_cat, 
     'post_type' => 'portfolio'); 

$all_posts = new WP_Query($args); 

бит у меня возникают проблемы с является $custom_cat, который установлен далее выше в шаблоне так:

$v_cats = get_post_meta($post->ID, 'rb_meta_box_portfolio_set', true); 

$all_cats = !empty($v_cats) ? implode($v_cats, ', ') : -1; 

$custom_cat = isset($_GET['f']) ? $_GET['f'] : $all_cats; 

Проблема заключается в том, что она игнорирует сообщения от определенной категории.

Если я изменю код на $custom_cat = 'promotions', который является названием категории, не отображающей, то он выводит сообщения из этой категории, но не при вытягивании всех категорий.

У кого-нибудь есть идея, почему это может быть?

В ответе на вопрос BIOSTALL, единственное другое место, на который ссылается rb_meta_box_portfolio_set в metaboxes.php, где это заходящий тип портфеля Сообщения:

$rb_meta_box_portfolio = array(
'id'  => 'rb_meta_box_portfolio', 
'title'  => 'Portfolio Options', 
'desc'  => '', 
'pages'  => array('page'), 
'context' => 'normal', 
'priority' => 'high', 
'fields' => array(
    array(
    'id'   => 'rb_meta_box_portfolio_set', 
    'label'  => 'Choose categories', 
    'desc'  => 'Select the categories which will appear in this portfolio.', 
    'std'   => 'portfolio', 
    'type'  => 'checkbox', 
    'class'  => '', 
    'choices' => $portfolios_array 
    ), 
+0

Может быть, проблема в том, что если категория, в которой нет ни одного сообщения, не отображающегося в списке. Пожалуйста, подтвердите это –

+0

. Это вам поможет? –

+0

Да, в категории есть сообщения. Я сказал, что ближе к концу моего поста выше. – Tyssen

ответ

1

Вашего взрываться() параметры навыворот Я считаю,

1

Implode принимает строку сначала, а затем массив, пожалуйста, проверьте php.net official documentation. Пожалуйста, измените ваш implode следующим образом:

implode(', ', $v_cats) 

спасибо.

+0

Вы совершенно правы, это было неправильно, но не решение, к сожалению. Если я выхожу из '$ all_cats', он включает в себя все из них, кроме отсутствующего. Я мог бы сделать что-то вроде '$ all_cats = $ all_cats. ', Акции, но это не очень надежное будущее. – Tyssen

Смежные вопросы