WordPress.org

Ready to get started?Download WordPress

Forums

[resolved] Post in multiple categories- get posts excluding one cat (4 posts)

  1. chachalady
    Member
    Posted 1 year ago #

    Hello!
    I have posts that can be both in category '5' and '152' at the same time.
    In right sidebar I have to retrieve posts from category '5' but excluding category '152' from that post listing.
    I HAVE A WORKING SOLUTION !!!!!
    - now you wonder why am I here then, right? !!! :-)
    HERE IS MY DILLEMA:
    1) Here is the code of a working solution:

    <ul>
    <?php
    
    $lastposts = get_posts('numberposts=7&cat=5&category__not_in=152');
    
            foreach($lastposts as $post) :
                   setup_postdata($post);
    ?>
    
    <li>
    <a href="<?php the_permalink(); ?>" target="_blank">
    <?php the_title(); ?></a>
    </li>
    
    <?php endforeach; ?>
    
    </ul>

    2) Here is the code that was NOT working, it was displaying posts also from cat='152' despite of the exclude 'cat__not_in' :

    <ul>
    <?php
        $args=array(
    	'cat' => 5,
    	'cat__not_in' => array(152),
    	'post_type' => 'post',
            'post_status' => 'publish',
    	'order' => 'DESC',
    	'posts_per_page' => 5
              );
         query_posts( $args ); ?>
    
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    
    <li>
    <a href="<?php the_permalink(); ?>" target="_blank"><?php the_title(); ?></a>
    </li>
    
    <?php endwhile; else: ?>
    <li><?php _e('No other news.'); ?></li>
    <?php endif; ?>
    
    </ul>

    Please, for a benefit of a future projects :-) , can a good souls that exists on this forum explain to me WHY OH WHY the method 2) with $args in array won't work in my case?

    It was just a lucky coincidence that I tried the working solution.
    But some bug in me won't let me sleep well till I find a reason why.
    I need my beauty sleep :-/
    Your explanation will help me and many other nonsleeping wordpressers, I am sure ... thank you, thank you, thank you ;-)

  2. vtxyzzy
    Member
    Posted 1 year ago #

    If you posted the actual code for the $args array, then the problem appears to be that you used 'cat__not_in' instead of 'category__not_in'.

  3. chachalady
    Member
    Posted 1 year ago #

    OMG, yes, that's the actual code ... with 'category__not_in' both examples are working ok.
    :-))))

    Thank you very much - how silly of me - I didn't even realise the diffeence.... !

    Browsing through forums I am sure I saw 'cat__not_in' ... so I thought I can write it that way ...

    All in all - now everybody can see both examples of excluding posts from specific category.

    :-)

  4. chachalady
    Member
    Posted 1 year ago #

    We can now mark this as resolved :-)

Topic Closed

This topic has been closed to new replies.

About this Topic