admin管理员组

文章数量:1405186

Hi i want to show current taxonomy post type count by month but it show total post count istead of current tax. please help me. i am trying to solve this problem almost 3 weeks.

 <?php 
$post_type = "myposttype";
$timestamp_start = strtotime("first day of next month -1 year midnight");
$start = date("Y-m-d H:i:s", $timestamp_start);

$posts = get_posts([
    "nopaging" => TRUE,
    "post_type" => $post_type,
    "date_query" => [
        "after" => $start,
    ],
]);



// sort by month

$tab = [];

foreach ($posts as $post) {

    $month = mysql2date("F", $post->post_date);

    if (!isset($tab[$month])) {
        $tab[$month] = 0;
    }

    $tab[$month]++;

}


// display

$timestamp = $timestamp_start;
$now = time();

while ($timestamp < $now) {

    $month = date_i18n("F", $timestamp);

    $count = $tab[$month] ?? 0; // need PHP 7

    echo '<li>'."$month: $count". '</li>';


    // next month

    $timestamp = strtotime("+1 month", $timestamp);

}
?>

Hi i want to show current taxonomy post type count by month but it show total post count istead of current tax. please help me. i am trying to solve this problem almost 3 weeks.

 <?php 
$post_type = "myposttype";
$timestamp_start = strtotime("first day of next month -1 year midnight");
$start = date("Y-m-d H:i:s", $timestamp_start);

$posts = get_posts([
    "nopaging" => TRUE,
    "post_type" => $post_type,
    "date_query" => [
        "after" => $start,
    ],
]);



// sort by month

$tab = [];

foreach ($posts as $post) {

    $month = mysql2date("F", $post->post_date);

    if (!isset($tab[$month])) {
        $tab[$month] = 0;
    }

    $tab[$month]++;

}


// display

$timestamp = $timestamp_start;
$now = time();

while ($timestamp < $now) {

    $month = date_i18n("F", $timestamp);

    $count = $tab[$month] ?? 0; // need PHP 7

    echo '<li>'."$month: $count". '</li>';


    // next month

    $timestamp = strtotime("+1 month", $timestamp);

}
?>
Share Improve this question edited Dec 24, 2019 at 11:19 Raminer asked Dec 24, 2019 at 9:43 RaminerRaminer 334 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 1

It looks like your query is for ALL posts in that post type as you are overwriting $posts when using $posts = get_posts(). You need to pass the Taxonomy parameter correctly as explained here like this:

$args = array(
    'post_type' => 'post',
    'tax_query' => array(
        array(
            'taxonomy' => 'people',
            'field'    => 'slug',
            'terms'    => 'bob',
        ),
    ),
);
$query = new WP_Query( $args );

You need to modify your code along those lines. So maybe change $posts = get_queried_object()->term_id; to $termID = get_queried_object()->term_id; and use that in your tax_query

本文标签: custom post typesQuery not work for current taxonomy