您的PHP错误。
function slider_exclude(){
$exclude_query = query_posts(array(\'showposts\' => 4, \'cat\' => \'news\',));
foreach($exclude_query as $post_ids){
return $post_ids->ID.\',\';
}
}
看起来您正在尝试构建逗号分隔的字符串,但事实并非如此
return
作品当那
foreach
点击
return
函数返回--结束。不会处理任何其他内容。
从外观上看,您需要构建并返回一个数组。
function slider_exclude(){
$ret = array();
$exclude_query = query_posts(array(\'showposts\' => 4, \'cat\' => \'news\',));
foreach($exclude_query as $post_ids){
$ret[] = $post_ids->ID;
}
return $ret;
}
那么您的这一行就会有问题:
\'post__not_in\' => array(slider_exclude()),
因为现在将有一个嵌套数组。执行以下操作:
\'post__not_in\' => slider_exclude(),
或更好:
$args = array(
\'post_type\' => \'post\',
\'posts_per_page\' => 15,
\'paged\' => ( get_query_var(\'paged\') ? get_query_var(\'paged\') : 1)
);
$exclude = slider_exclude();
if (!empty($exclude)) {
$args[\'post__not_in\'] = $exclude;
}
query_posts($args);
这只会增加
post_not_in
如果有什么要排除的条件。