Wordpress Themes - WP Forum at BFA

Wordpress Themes - WP Forum at BFA (http://forum.bytesforall.com/index.php)
-   Center area post/pages (http://forum.bytesforall.com/forumdisplay.php?f=32)
-   -   [SOLVED] Help modifying the loop with several parameters (http://forum.bytesforall.com/showthread.php?t=14929)

Tim F Jul 22, 2011 08:52 PM

[SOLVED] Help modifying the loop with several parameters
 
Hi all! Sorry to ask this, I guess it's more a PHP question than strictly an atahualpa question but I've been trying to figure it out for a few hours and it is starting to do my nut in! :p

I have a loop at the top of my page to show only posts from category 3. I am trying to create a second loop underneath this that:

Shows one post only, that post being the latest sticky post if a sticky post exists, otherwise just the most recent post, but excluding category 3.

I am using the following code right at the bottom of 'Content above the loop' and it works perfectly to show one post, sticky if present, but have not yet been able to exclude category 3.

Code:

<?php $args = array(
        'posts_per_page' => 1,
        'post__in'  => get_option( 'sticky_posts' ),
        'ignore_sticky_posts' => 1       
);
if (is_front_page() && !is_paged() ) $posts = query_posts($args); ?>

I have tried

Code:

<?php $args = array(
        'posts_per_page' => 1,
        'post__in'  => get_option( 'sticky_posts' ),
        'ignore_sticky_posts' => 1
        'cat' => -3       
);
if (is_front_page() && !is_paged() ) $posts = query_posts($args); ?>

But this breaks the loop at the top of the page (I get Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ')' in URL/functions.php(575) : eval()'d code on line 45)

and it also stops the second loop from working.

I also tried concatenating 'cat=-3' with $args but got a similar error.

Can anyone see anything wrong with my syntax or method for excluding category 3? Any suggestions greatly appreciated!

Tim F Jul 22, 2011 09:55 PM

I should add that this works fine on its own to exclude cat 3 from the main loop:
Code:

<?php if (is_front_page() && !is_paged() ) $posts = query_posts($query_string . '&cat=-3&showposts=1'); ?>

juggledad Jul 23, 2011 06:29 AM

you are missing a comma after
HTML Code:

ignore_sticky_posts' => 1
because you added an element in the array, so it should be
HTML Code:

<?php $args = array(
        'posts_per_page' =>
1,
        'post__in'  => get_option( 'sticky_posts' ),
        'ignore_sticky_posts' => 1,
        'cat' => -3       
);
if (is_front_page() && !is_paged() ) $posts = query_posts($args); ?>

p.s. I can't tell you how many times in my life I stared at a chunk of code only to have someone walk over and say 'don't you want a period there' or 'you need a comma there' ...sigh

Tim F Jul 23, 2011 08:58 AM

Thanks so much! Can't tell you how frustrating and satisfying it is to solve that so easily ;)


All times are GMT -6. The time now is 05:26 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.