我在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
),
答案 0 :(得分:1)
你认为你的implode()参数是错误的方式
答案 1 :(得分:1)
Implode首先获取字符串然后获取数组,请检查php.net official documentation。请更改您的implode
,如下所示:
implode(', ', $v_cats)
感谢。