Wordpress Query does not display all posts using get_posts() - php

I took over managing a WP site and do not have nearly the expertise that the previous person had. On the specific page, we have a magazine that shows related chess games that can be viewed that would fall under the magazine.
For some reason, the page will only display a maximum of 5 games at a time. I need to display as many games as there are that have the tag that matches the magazine. Below is the PHP code used for this page. Is anyone able to help me figure out what/where the issue lies?
<?php
/**
* Template Name: Antics Magazine Template
*
* #package WordPress
*/
get_header(); ?>
<main>
<?php if ( have_posts() ) :
while ( have_posts() ) : the_post();
?>
<section class="container py-5 text-center">
<h2 class="title--main text-uppercase mb-3">Antics <strong>Magazine</strong></h2>
<?php the_content(); ?>
<?php endwhile; endif; ?>
</section>
<section class="container pb-5">
<?php
$terms = get_terms( array(
'taxonomy' => 'magazine_type',
'hide_empty' => true,
'orderby' => 'id',
'order' => 'DESC'
) );
$i = 1;
//print_r($terms);
foreach($terms as $term){
//echo $term->term_id;
//echo $term->name;
//echo $term->slug;
if($i === 1 ){ $expand = 'true'; } else{ $expand = 'false'; }
?>
<div class="events">
<div class="events--header">
<?php echo $term->name; ?>
Read Magazine
<button class="btn ml-3" type="button" data-toggle="collapse" data-target="#collapsible-<?php echo $i; ?>" aria-expanded="<?php echo $expand; ?>">
<span class="sr-only">+</span>
</button>
</div>
<div class="collapse <?php if($i == 1){ echo 'show'; } ?>" id="collapsible-<?php echo $i; ?>">
<div class="events--body">
<?php
$args = array(
'post_type' => 'magazines',
'tax_query' => array(
array(
'taxonomy' => 'magazine_type',
'field' => 'slug',
'terms' => $term->slug,
),
),
);
$query = new WP_Query( $args );
if( $query->have_posts()): while( $query->have_posts()): $query->the_post();
?>
<div class="events--content">
<div class="row align-items-center">
<?php /*
<div class="col-xl-4">
<div class="events--date mb-xl-0">
<?php $date=date_create(get_the_date()); ?>
<span><?php echo date_format($date,"d"); ?></span> <?php echo date_format($date,"l, F j, Y"); ?>
</div>
</div>
*/ ?>
<div class="col-md">
<div class="events--title mb-0">
<?php the_title(); ?>
</div>
<!-- <p class="mb-md-0">Dothan Open</p> -->
</div>
<div class="col-md-auto">
View Game
<!-- Download Game -->
</div>
</div>
</div>
<?php endwhile; endif; ?>
</div>
</div>
</div>
<?php $i++; } ?>
</section>
</main>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="redacted" crossorigin="anonymous"></script>
<?php
get_footer();
I have tried messing with the loop counter thinking that perhaps the loop has a ceiling of 5, but that doesn't seem to be the case. I have verified that all six of the chess games are tagged appropriately/identically to one another.

Have you tried adding posts_per_page to the $args? Would look like this (more here):
$args = array(
'posts_per_page' => -1, // display all posts found
'post_type' => 'magazines',
'tax_query' => array(
array(
'taxonomy' => 'magazine_type',
'field' => 'slug',
'terms' => $term->slug,
),
),
);

Related

Woocommerce how to display products which has two categories, one of them should be common

I am developing custom Woo shop theme. I want to display in front-page.php NEW COLLECTION products, it should be one block, and inside few smaller blocks with products ant their another vcategories, because, they will have common category NEW and another category depends BEDROOM/BATHROOM/CLOTHING, for now i have reahced display by one category.
<div class="col-md-12 row">
<?php
$args = array(
'post_type' => 'product',
'posts_per_page' => 4,
'product_cat' => 'clothing'
);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
global $product;
$colors = explode(',',$product->get_attribute('color'));
$price = $product->get_price_html();
?>
<div class="col-md-3 d-flex flex-column">
<div class="homepage__single-product">
<a href="<?php the_permalink(); ?>">
<img src="<?php echo the_post_thumbnail_url(); ?>">
<p class="homapage__single-product-title"><?php the_title(); ?></p>
<p class="homapage__single-product-price"><?php echo $price ?></p>
<p class="homepage__single-product-color">
<?php foreach ($colors as $color) {
echo '<span class="attribute-color '. strtolower(trim($color)) .'"></span>';
}
?>
</p>
</a>
</div>
</div>
<?php
endwhile;
wp_reset_query();
?>
</div>
I hope that my question will be clear, i am adding image with design for better understanding. I think that it should be somethimg like this code, but this code should have NEW as product_cat in $args, and then inside loop somehow do same block but with other categories.
design shows how it should be
You can use tax_query to get products from multiple categories. check below code.
<div class="col-md-12 row">
<?php
$prod_categories = array( 'bedroom', 'bathrooms', 'clothing'); //category slugs
$args = array(
'post_type' => 'product',
'posts_per_page' => 4,
);
if (!empty($prod_categories)) {
$args['tax_query'] = array(
array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => $prod_categories,
'operator' => 'IN',
));
}
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
global $product;
$colors = explode(',',$product->get_attribute('color'));
$price = $product->get_price_html();
?>
<div class="col-md-3 d-flex flex-column">
<div class="homepage__single-product">
<a href="<?php the_permalink(); ?>">
<img src="<?php echo the_post_thumbnail_url(); ?>">
<p class="homapage__single-product-title"><?php the_title(); ?></p>
<p class="homapage__single-product-price"><?php echo $price ?></p>
<p class="homepage__single-product-color">
<?php foreach ($colors as $color) {
echo '<span class="attribute-color '. strtolower(trim($color)) .'"></span>';
}
?>
</p>
</a>
</div>
</div>
<?php
endwhile;
wp_reset_query();
?>
</div>

WordPress loop alternate rows and columns each two posts with bootstrap

I want to create a loop for wordpress that returns each two posts inside its own div and alternating columns every new row (see example)... Im not experimented in php enough to make this happen. I dont manage to get it working appropiatly. And see how to make the last div to bee 100% width if it does not have another column.
I would appreciate your support to make this happen since I tried many things and still no luck. (im using visual composer bootstrap classes, it does work but not as expected.This is the example I want to create
This is my code:
<?php
$args = array(
'posts_per_page' => '-1',
'post_type' => 'inversion',
'category_name' => '',
'order' => 'DESC',
'orderby' => 'DATE'
);
$the_query = new WP_Query( $args );?>
<?php if ( $the_query->have_posts() ) : ?>
<div class="vc_row">
<?php while ( $the_query->have_posts() ) : $the_query->the_post(); $i++; $imagen = get_the_post_thumbnail_url(get_the_ID(),'full'); ?>
<?php if(($i % 2) == 2) : ?>
<div class="vc_col-sm-6">
<div class="vc_row vc_row-fluid">
<div class="vc_col-sm-6 cont-izq">
<h3><?php the_title(); ?></h3>
</div>
<div class="vc_col-sm-6 cont-der" >
<a class="click-info">Más Información</a>
<div class="img-dentro kenburns-top" style="background:url(<?php echo $imagen; ?>)no-repeat; background-size:cover;">
</div>
</div>
</div>
</div>
<?php else : ?>
<div class="vc_col-sm-6">
<div class="vc_row vc_row-fluid">
<div class="vc_col-sm-6 cont-der" >
<a class="click-info">Más Información</a>
<div class="img-dentro kenburns-top" style="background:url(<?php echo $imagen; ?>)no-repeat; background-size:cover;">
</div>
</div>
<div class="vc_col-sm-6 cont-izq">
<h3><?php the_title(); ?></h3>
</div>
</div>
</div>
<?php endif; endwhile; ?>
</div>
<?php endif; ?>
<?php wp_reset_query(); ?>
[EDIT]Try this:
<?php
$args = array(
'posts_per_page' => '-1',
'post_type' => 'inversion',
'category_name' => '',
'order' => 'DESC',
'orderby' => 'date',
);
$the_query = new WP_Query( $args );
?>
<?php if ( $the_query->have_posts() ) : ?>
<div class="vc_row">
<?php
$float_class = '';
while ( $the_query->have_posts() ) :
$the_query->the_post();
if ( $the_query->current_post &&
$the_query->current_post % 2 === 0 ) {
$float_class = $float_class ? '' : 'vc_pull-right';
}
$imagen = get_the_post_thumbnail_url( get_the_ID(), 'full' );
?>
<div class="vc_col-sm-6">
<div class="vc_row vc_row-fluid">
<div class="vc_col-sm-6 cont-der <?php echo $float_class; ?>">
<a class="click-info">Más Información</a>
<div class="img-dentro kenburns-top" style="background:url('<?php echo esc_url( $imagen ); ?>') no-repeat; background-size:cover;">
</div>
</div>
<div class="vc_col-sm-6 cont-izq">
<h3><?php the_title(); ?></h3>
</div>
</div>
</div>
<?php endwhile; // end have_posts() loop ?>
</div><!-- .vc_row -->
<?php endif; // end have_posts() check ?>
<?php wp_reset_query(); ?>

WordPress Pagination Won't Switch Pages

I have been searching for a solution to this issue for over a week and I haven't been able to find anybody else with the same trouble.
I am working on a custom WP theme that somebody else built. There is a single-page template that I need to implement paging on for one of the secondary loops. I have been attempting to use the built-in paginate_links() function, as well as other methods. The pagination links show up, but when I click on a pagination link it doesn't go to that page in the pagination. Instead the original page is reloaded (i.e. instead of going to thewebsite.com/my-page/page/2/, it reloads thewebsite.com/my-page/).
The previous dev used this filter in functions.php to load the correct template:
add_filter('single_template', create_function('$t', 'foreach( (array) get_the_category() as $cat ) { if ( file_exists(TEMPLATEPATH . "/single-{$cat->slug}.php") ) return TEMPLATEPATH . "/single-{$cat->slug}.php"; } return $t;' ));
And here is my template file:
<?php
/**
* Template Name: Project Template
*/
get_header('news'); ?>
<article role="main" class="projectpage">
<div class="container">
<section class="pagecontent">
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<section class="overview">
<h1><?php the_title(); ?></h1>
<div>
<?php the_content(); ?>
</div>
<div>
<?php if(get_post_meta($post->ID, 'pagelink', true)): ?>
Read the Overview
<?php endif; ?>
</div>
</div><!--end row-->
</section><!--end overview-->
<?php endwhile ?>
<?php wp_reset_postdata() ?>
<? endif ?>
<section class="related">
<div>
<h1> Related Resources </h1>
<h2> Explore our library of articles and resources </h2>
</div>
<div class="row">
<div class="col-lg-3 col-md-3 col-sm-3 col-xs-3 relatedlinks">
<section class="projectcategories">
<h3> Categories </h3>
<ul>
<?php wp_list_categories( array(
'orderby' => 'id',
'show_count' => true,
'use_desc_for_title' => false,
'child_of' => 93,
'title_li' => ' '
) ); ?>
</ul>
</section>
<section class="project-search" role="search">
<form method="get" action="<?php echo esc_url( home_url( '/' ) ); ?>">
<input type="hidden" name="cat" id="cat" value="93" />
<input type="text" size="16" name="s" placeholder="search keywords" class="search-box" />
<input type="submit" value="Go" class="go"/>
</form>
</section>
<section class="otherprojects">
<h3> Other Projects </h3>
<?php
$args = array(
'category__in' => 91,
'post__not_in' => array( $post->ID )
);
// the query
$query = new WP_Query( $args );
$temp_query = $wp_query;
$wp_query = NULL;
$wp_query = $query;
// The Loop
if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post(); ?>
<?php the_title(); ?>
<? endwhile ;
/* Restore original Post Data */
wp_reset_postdata();
endif;
$wp_query = NULL;
$wp_query = $temp_query;
?>
</section>
</div><!--end col 1-->
<div class="col-lg-9 col-md-9 col-sm-9 col-xs-9">
<section class="articles">
<?php
// THIS IS THE SECTION WHERE I NEED THE PAGINATION
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = [
'posts_per_page' => 3,
'paged' => $paged,
'post_type' => 'post',
'order' => 'DESC',
'post__not_in' => array( $post->ID ),
'tax_query' => [
[
'taxonomy' => 'category',
'field' => 'term_id',
'terms' => '93',
],
],
];
$custom_query = new WP_Query( $args );
$temp_query = $wp_query;
$wp_query = NULL;
$wp_query = $custom_query;
if ( $custom_query->have_posts() ) {
while ( $custom_query->have_posts() ) {
$custom_query->the_post(); ?>
<div class="row">
<div class="col-md-2 col-sm-2 col-xs-2 divider">
<p class="date"><?php the_time('M j') ?></p>
</div><!--end col-->
<div class="col-md-4 col-sm-4 col-xs-4">
<div class="articleimg">
<?php if ( has_post_thumbnail()) {?>
<?php the_post_thumbnail('blog-thumb'); ?>
<?php } ?>
</div><!--end blogimg-->
</div><!--end col-->
<div class="col-md-6 col-sm-6 col-xs-6">
<div class="blogcontent">
<h3><?php the_title();?></h3>
<p><?php the_excerpt(); ?></p>
// read more
</div><!--end blogcontent-->
</div><!--end col-->
</div><!--end row-->
<?php }
}
echo paginate_links(array(
'total' => $wp_query->max_num_pages
));
$wp_query = NULL;
$wp_query = $temp_query;
wp_reset_postdata(); ?>
</section><!--end articles-->
</div><!--end col 2-->
</div> <!--end row-->
</section><!--end related-->
<!-- ANNOUNCEMENTS -->
<!--ANNOUNCEMENT SECTION -->
<!-- dynamic content --filters posts by category and only shows 'member' posts with a limit of six posts being
displayed-->
<section id="announcement-front" class="clearfix">
<div class="container">
<div>
<?php $query = new WP_Query('posts_per_page=1&category_name=advertisement');
if ($query->have_posts()) :
while ($query->have_posts()) : $query->the_post(); ?>
<a href="<?php the_permalink()?>" <?php the_content();?> </a>
<?php endwhile ?>
<? endif ?>
<?php wp_reset_postdata() ?>
</div><!--end row-->
</div><!--container-->
</section><!--end announcement-->
</section> <!--end page content -->
</div><!--end container-->
</article>
<?php get_footer(); ?>
I realize there is a whole galaxy of WordPress pagination tutorials and threads out there, but I haven't been able to find one yet that solves this particular problem.
I think your code should mostly work. You don't need to worry about all the saving and switching of $wp_query though - have you tried this simpler snippet? It worked ok in my environment (though I had to modify the query args slightly to get it to return any results).
If that's not working can you post the HTML it generates?
<section class="articles">
<?php
// THIS IS THE SECTION WHERE I NEED THE PAGINATION
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = [
'posts_per_page' => 3,
'paged' => $paged,
'post_type' => 'post',
'order' => 'DESC',
'post__not_in' => array( $post->ID ),
'tax_query' => [
[
'taxonomy' => 'category',
'field' => 'term_id',
'terms' => '93',
],
],
];
$custom_query = new WP_Query( $args );
if ( $custom_query->have_posts() ) {
while ( $custom_query->have_posts() ) {
$custom_query->the_post(); ?>
<div class="row">
<div class="col-md-2 col-sm-2 col-xs-2 divider">
<p class="date"><?php the_time('M j') ?></p>
</div><!--end col-->
<div class="col-md-4 col-sm-4 col-xs-4">
<div class="articleimg">
<?php if ( has_post_thumbnail()) {?>
<?php the_post_thumbnail('blog-thumb'); ?>
<?php } ?>
</div><!--end blogimg-->
</div><!--end col-->
<div class="col-md-6 col-sm-6 col-xs-6">
<div class="blogcontent">
<h3><?php the_title();?></h3>
<p><?php the_excerpt(); ?></p>
// read more
</div><!--end blogcontent-->
</div><!--end col-->
</div><!--end row-->
<?php }
}
echo paginate_links(array(
'total' => $custom_query->max_num_pages
));
wp_reset_postdata(); ?>
</section><!--end articles-->
</div><!--end col 2-->
</div> <!--end row-->
</section><!--end related-->
Thanks, Jo! That article pointed me in the right direction. I checked in dev tools and I was indeed getting a 301. I tried the code snippet from the article you pointed me to, and it didn't quite work, so I googled "fix pagination with redirect_canonical" and this was the first article that popped up. I took the function from there, threw it in to functions.php, et voilà! It's the same method, but, I think, not passing a custom post type into the conditional. I hope this can help someone in the future. It was a real pain. It was also a reminder of how very little I really know about WP and how much I want to learn about it! Thanks again.
Here's the code:
add_filter('redirect_canonical','custom_disable_redirect_canonical');
function custom_disable_redirect_canonical($redirect_url) {
if (is_paged() && is_singular()) $redirect_url = false;
return $redirect_url;
}

How do you print an entire post into a page (wordpress)

Hi I've made a custom post type 'work_fields' that calls in information from yet another custom post type 'members' into the post, and now I'm trying to make a PAGE TEMPLATE that shows a list of the titles of custom post type 'work_fields', and when you click a title, the whole post('work_fields') will show up on a div called 'single-post-container' below the titles. right now I've got everything working fine, but I want to display a post in the div 'single-post-container' when the page loads. (as of now, just the titles of the posts are displayed and there is nothing in the div). How do I get the div to display the most recent post of custom post type 'work_fields' on page load? This is the code for the custom page template.
<div class="row">
<div class="small-12 medium-10 large-offset-1 columns">
<h2><?php the_title(); ?></h2>
</div>
</div>
<div class="row halfsection">
<div class="small-12 medium-10 large-offset-1 columns">
<div class="category_container">
<?php
$args = array('post_type' => 'work_fields',);
$query = new WP_Query( $args );
?>
<?php if ( $query->have_posts() ) : ?>
<?php while ( $query->have_posts() ) : $query->the_post(); ?>
<p class="category_item"><a class="post-link" rel="<?php the_ID(); ?>" href="<?php the_permalink(); ?>"><?php echo get_the_title(); ?></a></p>
<?php endwhile; endif; ?>
</div>
</div>
</div>
<div class="row">
<div class="small-12 medium-10 large-offset-1 columns">
<hr>
</div>
</div>
<div id="single-post-container">
//THIS IS WHERE THE POST CONTENTS SHOWS BUT I WANT THE MOST RECENT POST TO BE HERE ON PAGE LOAD, BEFORE I CLICK ANY OTHER POST//
</div>
Thank you! Your help is much appreciated!
Just use the WP_query twice by getting recent posts in the arguments,
$args2 = array('post_type' => 'work_fields', 'orderby' => 'ID', 'order'=> 'DESC' , 'posts_per_page' => 5);
$query2 = new WP_Query( $args2 );
?><div id="single-post-container"><?php
// The Loop
if ( $query2->have_posts() ) {
echo '<ul>';
while ( $query2->have_posts() ) {
$query2->the_post();
echo '<li>' . get_the_content() . '</li>';
}
echo '</ul>';
/* Restore original Post Data */
wp_reset_postdata();
}
?></div><?php
Put the div outside loop. It will show the content of recent 5 posts.
If everything above the div single-post-container is working fine then for this specific div you can load most recent post by using code below. Be sure to reset previous post data using wp_reset_postdata()
Codex Documentation. https://codex.wordpress.org/Function_Reference/wp_get_recent_posts
<?php
$args = array(
'numberposts' => 1,
'orderby' => 'post_date',
'order' => 'DESC',
'post_type' => 'work_fields',
'post_status' => 'publish',
'suppress_filters' => true
);
$recent_posts = wp_get_recent_posts( $args, ARRAY_A );
?>
So I just recreated the post type markup on my page. I'm sure there's a better way to do this but for times sake I had to at least make it work. I also tried using a jquery onclick function and just click the first title after everything loads, but there was an error that just kept pushing all of the titles so I pretty much gave up.
here's the code
<div class="row">
<div class="small-12 medium-10 large-offset-1 columns">
<h2><?php the_title(); ?></h2>
</div>
</div>
<div class="row halfsection">
<div class="small-12 medium-10 large-offset-1 columns">
<div class="category_container">
<?php
$args = array(
'post_type' => 'work_fields',
);
$query = new WP_Query( $args );
?>
<?php if ( $query->have_posts() ) : ?>
<?php while ( $query->have_posts() ) : $query->the_post(); ?>
<p class="category_item"><a class="post-link" rel="<?php the_ID(); ?>" href="<?php the_permalink(); ?>"><?php echo get_the_title(); ?></a></p>
<?php endwhile; endif; ?>
</div>
</div>
</div>
<div class="row">
<div class="small-12 medium-10 large-offset-1 columns">
<hr>
</div>
</div>
<div id="single-post-container">
<?php
$args2 = array(
'orderby' => 'post_date',
'order' => 'DESC',
'post_type' => 'work_fields',
'post_status' => 'publish',
'posts_per_page' => 1,
);
$query2 = new WP_Query( $args2 );
if ( $query2->have_posts() ) : ?>
<?php $post = get_post($_POST['id']); ?>
<div id="single-post post-<?php the_ID(); ?>">
<?php while ( $query2->have_posts() ) : $query2->the_post(); ?>
<div class="row section">
<div class="small-12 medium-7 large-offset-1 columns">
<h2><?php the_title(); ?></h2>
<h3>소개</h3>
<p class="halfsection"><?php the_field('work_fields_intro'); ?></p>
<h3>주요서비스</h3>
<p class="halfsection"><?php the_field('work_fields_service'); ?></p>
<h3>주요실적</h3>
<p class="halfsection"><?php the_field('work_fields_accomplishment'); ?></p>
</div>
<?php endwhile; endif; ?>
<div class="small-6 medium-3 large-2 columns large-offset-1 end">
<?php
$posts = get_field('team_member');
if( $posts ): ?>
<?php foreach( $posts as $post): // variable must be called $post (IMPORTANT) ?>
<?php setup_postdata($post); ?>
<div class="member_container halfsection">
<div class="member"><?php the_post_thumbnail(); ?></div>
<p class="member_name"><?php the_title(); ?></p>
<ul class="members_info">
<li><?php the_field('members_position'); ?></li>
<li><?php the_field('members_e-mail'); ?></li>
<li><?php the_field('members_phone'); ?></li>
</ul>
</div>
<?php endforeach; ?>
<?php endif; ?>
</div>
</div>
</div>
</div>

Wordpress Custom post type_show post counts

I am working in a custom WP theme.I need to show each posts under individual categories, which is working fine.
I changed the category to taxonomy.Now, i want to show more info under each category name,but, i cannot understand,where should i put my code in the loop.
Specially the post counts under each categories.
<?php
/*
Template Name: Home Page
*/
get_header();
global $redux_demo;
?>
<div class="sroll"><div class="container">
<marquee><p> <?php echo $redux_demo['main-option-marquee']; ?></p></marquee>
</div></div>
<div class="container">
<div class="row">
<div class="col-sm-9"> </br>
<div class="content mCustomScrollbar" style="height: 690px;">
<?php
$terms = get_terms( array(
'taxonomy' => 'category',
'hide_empty' => false,
) );
foreach($terms as $cat){
$cata_name = $cat->name;
$term_id = $cat->term_id;
?>
<div class="col-sm-6 col-md-4 col-lg-3 p10">
<div class="box">
<?php
//echo '<h3>'.$catname[0]->cat_name.'</h3>';
?><h3><a href="<?php echo home_url('index.php/category/'.$cata_name) ?>">
<?php echo $cata_name; ?></a></h3> <?php
$catqueryy = new WP_Query( 'cat='.$term_id.'&posts_per_page=4' );
while($catqueryy->have_posts()) : $catqueryy->the_post();
?>
<p class="post_title"><?php echo ''.__(get_the_title(),'rockon').''; ?></p>
<p class="post_cont"><?php echo get_the_excerpt(); ?></p>
<?php
endwhile;
?>
</div>
</div>
<?php } ?>
</div></br>
</div>
<div class="col-sm-3">
<h1></h1>
<?php get_sidebar(); ?>
<h1></h1>
</div>
</div>
</div>
<?php
get_footer();
?>
Custom taxonomy try:
$the_query = new WP_Query( array(
'post_type' => 'CUSTOM_POST_TYPE',
'tax_query' => array(
array(
'taxonomy' => 'CUSTOM_TAXONOMY',
'field' => 'id',
'terms' => TERM_ID
)
)
) );
$count = $the_query->found_posts;
https://wordpress.org/support/topic/counting-posts-within-categories
For Example:
<?php
/*
Template Name: Home Page
*/
get_header();
global $redux_demo;
?>
<div class="sroll"><div class="container">
<marquee><p> <?php echo $redux_demo['main-option-marquee']; ?></p></marquee>
</div></div>
<div class="container">
<div class="row">
<div class="col-sm-9"> </br>
<div class="content mCustomScrollbar" style="height: 690px;">
<?php
$terms = get_terms( array(
'taxonomy' => 'category',
'hide_empty' => false,
) );
foreach($terms as $cat){
$cata_name = $cat->name;
$term_id = $cat->term_id;
?>
<div class="col-sm-6 col-md-4 col-lg-3 p10">
<div class="box">
<?php
//echo '<h3>'.$catname[0]->cat_name.'</h3>';
?><h3><a href="<?php echo home_url('index.php/category/'.$cata_name) ?>">
<?php echo $cata_name; ?></a></h3>
<?php
$catqueryy = new WP_Query( 'cat='.$term_id.'&posts_per_page=4' );
$count = $catqueryy->found_posts;
?>
<h3><?php echo "Post Count : ".$count; ?></h3>
<?php
while($catqueryy->have_posts()) : $catqueryy->the_post();
?>
<p class="post_title"><?php echo ''.__(get_the_title(),'rockon').''; ?></p>
<p class="post_cont"><?php echo get_the_excerpt(); ?></p>
<?php
endwhile;
?>
</div>
</div>
<?php } ?>
</div></br>
</div>
<div class="col-sm-3">
<h1></h1>
<?php get_sidebar(); ?>
<h1></h1>
</div>
</div>
</div>
<?php
get_footer();
?>
You can check this Link enter link description here
if it helps.. I guess, some one will write this code here as I also need to understand how it will work after you pass a query.
Actually you do not need to count anything by manually written code. If you look at the get_terms() description, you can see that WP counts this for you (if you set 'pad_counts' to true (or 1)). With this turned on there will be a "count" key and a number value in your response array with each category.
You can just "echo" it where you want to.
This way your
$terms = get_terms( array(
'taxonomy' => 'category',
'hide_empty' => false,
) );
should look like this:
$terms = get_terms( array(
'taxonomy' => 'category',
'hide_empty' => false,
'pad_counts' => true,
) );
Notice that I added 'pad_counts' => true, to the query, so you will have the number you are looking for - without writing too much code.
If you want to do it manually, I suggest that you create a loop that fills an array with 'category => number' elements, and look up the required key-value pairs in the loop that writes out the HTML.
I was also searching for something similar to this question. I think, you need a code to display the post counts of each categories.

Categories