Wordpress没有检索某个类别

时间:2013-11-20 05:52:30

标签: php wordpress categories

我在Wordpress模板文件(Goodwork主题)中有以下代码,它输出了一个帖子列表。

$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
    ),

2 个答案:

答案 0 :(得分:1)

你认为你的implode()参数是错误的方式

答案 1 :(得分:1)

Implode首先获取字符串然后获取数组,请检查php.net official documentation。请更改您的implode,如下所示:

implode(', ', $v_cats)

感谢。