i have a get_terms which loads correctly.
inside of it i have used get_posts. then using get posts i am
trying to get each post tags (and count <= not currently inside this script)
<?php
$categories = get_terms( 'blogs_cat', array(
'type' => 'blogs',
'orderby' => 'name',
'order' => 'ASC',
'hide_empty' => 0,
'exclude' => '1',
'number' => '1000',
'pad_counts' => true
)
);
echo '<div class="clientList">';
echo '<ul>';
foreach ($categories as $category) {
$colorClass = '';
// COUNT NUMBER OF TAGS AKA: PUBLISHED / NOT PUBLISHED ARTICLES
$termID = $category->term_id;
$taxonomyNAME = $category->taxonomy;
$termSLUG = $category->slug;
$items = get_posts( array(
'post_type' => 'blogs',
'numberposts' => -1,
'taxonomy' => $taxonomyNAME,
'term' => $termSLUG
) );
$totalPostsCount = count( $items );
// WHEN PRINT_R EACH ITEM RETURNS UNIQE ID
foreach ($items as $item) {
$posttags = get_the_tags($item->term_id);
if ($posttags) {
foreach($posttags as $tag) {
// HERE I GET SAME TAG NAME FOR ALL TAGS ACROSS POSTS (IN THIS CASE ITEMS)
echo $tag->name;
}
}
}
//print_r($category);
echo '<li class="'.$listClass.'"><div class="clientContainer"><a href="' . get_term_link($category->slug, 'blogs_cat') . '" title="' . sprintf( __( "All Articles By: %s" ), $category->name ) . '" ' . '>' . $category->name.'</a><div class="articleCount '.$colorClass.'"> ('.$totalPostsCount.' / p'.$publishedArticle.') </div></div></li>';
}
echo '</ul>';
echo '</div>';
?>
.
The Issuse is “echo $tag->name;” returns always the same tag..
can anyone help me to spot the problem / offer a better way
i might have gotten mixed with this script.
Thanks
EDIT 1 – RESPONSE TO: @tollmanz
when i *”print_r($item);”* inside the foreach i get this
(similer to each post that exist with its own details):
stdClass Object (
[ID] => 875
[post_author] => 1
[post_date] => 2012-06-25 14:34:53
[post_date_gmt] => 2012-06-25 11:34:53
[post_content] => Content Content Content
[post_title] => itle Example
[post_excerpt] =>
[post_status] => publish
[comment_status] => open
[ping_status] => open
[post_password] =>
[post_name] => post-name
[menu_order] => 0
[post_type] => blogs
[post_mime_type] =>
[comment_count] => 0
[filter] => raw
)
.
Also… When i “echo $item->ID;” i get the correct post id.
.
BUt when i try to *”print_r($posttags);”*
after this line: *”$posttags = get_the_tags($item->ID);”*
.
i get nothing… any ideas why?
When you do the following in your code
$posttags = get_the_tags($item->term_id);
,$item
is referring to a post object, not a term object. Therefore,term_id
is an invalid property. This should be throwing a PHP notice.While not certain, I think what you are intending to do is:
since
get_the_tags
takes a post ID, not a term ID.