I’m using a loop in the sidebar of my site to show all the posts that are in that category.
Now I’d like to include a ‘current_post’ class to the current post that is being displayed to style that item in the list.
I’ve tried looking for conditional tags or this custom wp_list_post_types function but both haven’t worked.
Does anybody know if there’s a way to do this?
EDIT: Adding Loop from comment below
<?php foreach((get_the_category()) as $category) {
$postcat= $category->cat_ID;
$catname =$category->cat_name; }
$args = array( 'cat' => $postcat );
$my_query = new WP_Query();
$my_query->query($args); // Equivalent of query_posts()
while($my_query->have_posts()) : $my_query->the_post();
$id=get_the_ID();
$currentClass= ($post->ID == $id) ? "current_post": ""; ?>
<a class="<?php echo $currentClass; ?>" href="<?php the_permalink();?>">ni</a>
<?php endwhile; ?>
You should be able to get the queried object id and use that for comparison inside your custom loop..
Before your existing loop code(what you have posted above), but obviously after the opening PHP tag..
Then somewhere inside your custom WP loops..
Hope that helps..
If you are using a loop you should be able to do something like this it is untested but should work. Loop for sidebar
Then
<div class="post <?php echo $currentClass; ?>">.....
This isn’t tested so I’m sort of just assuming that
$post->ID
will get the ID of the post outside andget_the_ID()
will get the ID of the post inside the loop. If that doesn’t work could you post your loop code and I’ll do some testEDIT
There is a few problems with your loop. One is that it’s only grabbing the last category. I did a quick google search and found a soultion that seems to work on my test install here
This will only show if they are on a Single post page. Otherwise bad things happen (IE duplicate post showing etc)