显示与类别相关的职位编号


Show post number in relation to category

我昨天问的这个问题有点令人困惑,所以今天我将尝试一个更好的:

我使用下面的脚本来计算每篇文章的数量:

显然也
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

的代码