我真的不知道你想解决什么问题。目前尚不清楚您试图用此代码实现什么,但:
echo count($the_query_partnerzy);
实际上是在计算这个查询中的元素,但只显示1(奇怪)。有了这些,我不能再往前走了。
不,不是。WP_Query
返回一个对象,并count
doesn\'t work on Objects, mostly.
实际查询结果位于$the_query_partnerzy->posts
所以count($the_query_partnerzy)
会给你想要的,但是WP_Query
对象已经为您提供了该数据。使用$the_query_partnerzy->found_posts
相反
我稍微整理了一下您的代码,这确实可以使用“post”post类型(因此我可以运行代码并测试它):
$catArgs = array(
\'type\' => \'post\',
\'child_of\' => 0,
\'parent\' => \'\',
\'orderby\' => \'name\',
\'order\' => \'ASC\',
\'hide_empty\' => 1,
\'hierarchical\' => 1,
\'exclude\' => \'\',
\'include\' => \'\',
\'number\' => \'\',
\'taxonomy\' => \'category\',
\'pad_counts\' => false
);
$categoryList = get_categories( $catArgs );
echo \'Sum: \'.count($categoryList);
$i = 0;// debugging ?
for ($categoryList as $catl) {
echo \'<br>Number of loop: \' . $i; // debugging ?
echo \'<br>Category name: \' . $catl->name;
$the_query_partnerzy = new WP_Query(
array(
\'post_type\' =>\'post\',
\'category_name\' => $catl->name
)
);
echo $the_query_partnerzy->found_posts; // debugging ?
if ($the_query_partnerzy->have_posts()) {
echo \'I got it!\'; // debugging ?
echo \'<div class="post-list container">\';
echo \'<p class="post-title">\'. $catl->name .\'</p>\';
while ($the_query_partnerzy->have_posts()) {
$the_query_partnerzy->the_post();
echo the_post_thumbnail();
} // while
echo \'</div>\';
} // query partnerzy
$i++; // debugging ?
}
注意事项:
标记的线条// debugging ?
最肯定的是应该删除for 您正在使用的循环虽然有效,但在PHP中很少需要。有一个更方便的foreach
, 和那个for
循环导致了一些错误,因为(出于我尚未调查的原因)返回的数组get_categories()
开始于1
而不是0
. 具有foreach
你不必为此担心查询参数中缺少引号。即:
$the_query_partnerzy = new WP_Query(
array(
post_type => \'post\',
category_name => $catl->name
)
);
而不是这样:
$the_query_partnerzy = new WP_Query(
array(
\'post_type\' => \'post\',
\'category_name\' => $catl->name
)
);
虽然这本应该奏效,但它却像愤怒一样发出警告。
您正在从post
但后来,他们试图从具有这些类别的不同帖子类型中提取帖子。您确定类别是为两种帖子类型注册的,并且实际上有符合该逻辑的帖子吗也就是说,代码很好,适合我。