我昨天问的这个问题有点令人困惑,所以今天我将尝试一个更好的:
我使用下面的脚本来计算每篇文章的数量:
显然也function Get_Post_Number($postID){
$temp_query = $wp_query;
$postNumberQuery = new WP_Query('orderby=date&order=DESC&posts_per_page=-1');
$counter = 1;
$postCount = 0;
if($postNumberQuery->have_posts()) :
while ($postNumberQuery->have_posts()) : $postNumberQuery->the_post();
if ($postID == get_the_ID()){
$postCount = $counter;
} else {
$counter++;
}
endwhile; endif;
wp_reset_query();
$wp_query = $temp_query;
return $postCount;
}
single.php
<?php $currentID = get_the_ID(); ?>
<?php $currentNumber = Get_Post_Number($currentID); ?>
<?php echo $currentNumber; ?>
结果:
类别1有3个帖子
post-page (cat 1) show me -> 1 of 3
post-page 2 (cat 1) show me -> 2 of 3
post-page 3 (cat 1) show me -> 3 of 3
类别2有2个帖子
post-page (cat 2) show me -> 4 of 2
post-page 2 (cat 2) show me -> 5 of 2
粗体数字来自脚本,问题是,它从第一个帖子到最后一个帖子计数,而不考虑类别。
类别1有3个帖子
post-page (cat 1) show me -> 1 of 3
post-page 2 (cat 1) show me -> 2 of 3
post-page 3 (cat 1) show me -> 3 of 3
类别2有2个帖子
of 2
of 2
这就是我现在尝试的,它总是最重要的。帖子——对我来说总是"8"。; (:
显然也
function Get_Post_Number($category){
$temp_query = $wp_query;
$postNumberQuery = new WP_Query('orderby=date&order=DESC&posts_per_page=-1&category=$category');
$counter = 1;
$postCount = 0;
if($postNumberQuery->have_posts()) :
while ($postNumberQuery->have_posts()) : $postNumberQuery->the_post();
$postCount++;
endwhile; endif;
wp_reset_query();
$wp_query = $temp_query;
return $postCount;
}
single.php
<?php $currentCat = get_the_Category(); ?> // Change to get the Category and not the id
<?php $currentNumber = Get_Post_Number($currentCat); ?>
<?php echo $currentNumber; ?>
您是否尝试过按类别进行搜索,而只是进行计数?
<?php $currentCat = get_the_Category(); ?> // Change to get the Category and not the id
<?php $currentNumber = Get_Post_Number($currentCat); ?>
<?php echo $currentNumber; ?>
function Get_Post_Number($category){
$temp_query = $wp_query;
$postNumberQuery = new WP_Query('orderby=date&order=DESC&posts_per_page=-1&category=$category');
$counter = 1;
$postCount = 0;
if($postNumberQuery->have_posts()) :
while ($postNumberQuery->have_posts()) : $postNumberQuery->the_post();
if ($postID == get_the_ID()){
$postCount = $counter;
} else {
$counter++;
}
endwhile; endif;
wp_reset_query();
$wp_query = $temp_query;
return $postCount;
}
您总是查询所有项目,因此您得到的是较大的数字。
我认为你需要在你的查询中包含类别,这样你只得到类别1的三个结果和类别2的两个结果,然后编号就可以了。
类似于下面的内容,这取决于您的数据库模式是什么…
function Get_Post_Number($postID,$category){
$temp_query = $wp_query;
$postNumberQuery = new WP_Query('orderby=date&order=DESC&posts_per_page=-1&category_name=$category');
$counter = 1;
$postCount = 0;
if($postNumberQuery->have_posts()) :
while ($postNumberQuery->have_posts()) : $postNumberQuery->the_post();
if ($postID == get_the_ID()){
$postCount = $counter;
} else {
$counter++;
}
endwhile; endif;
wp_reset_query();
$wp_query = $temp_query;
return $postCount;
}
并更新single.php
<?php $currentID = get_the_ID(); ?>
<?php $currentNumber = Get_Post_Number($currentID,$category); ?>
<?php echo $currentNumber; ?>
更新:添加了single.php