You could try something like this in your main loop:
<?php
while (have_posts()) : the_post();
$postmeta = get_post_custom($post->ID);
if ( $postmeta[‘featured’][0] == ‘yes’ ) continue;
rest of loop code here …
endwhile;
?>
Hmm… that didn’t work. After I applied that, nothing showed up at all from the Loop. Any other ideas?
What exactly is the meta value for your featured posts?
// 'The Loop' Posts
function com_post() {
global $post, $posts, $com_posts, $featured_ID;
if (have_posts()) : while(have_posts()) : the_post();
loop code goes here...
}
endwhile;
endif;
}
// Featured Slider Posts
function com_featured() {
global $post, $posts, $com_featuredPostsNum;
$args = array( 'meta_value'=> 'on',
'meta_key'=> 'featured_value',
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => $com_featuredPostsNum,
'caller_get_posts'=> 1
);
$featured = null; $featured = new WP_Query($args);
if ($featured->have_posts()) {
while ($featured->have_posts()) : $featured->the_post(); $featured_ID = $post->ID;
loop code goes here...
endwhile;
} wp_reset_query();
}
How can I exclude the posts displayed in the featured post query from the general Loop? These functions are in functions.php by the way.
Did you substitute your actual meta key and value into the code to make it work?
<?php
while (have_posts()) : the_post();
$postmeta = get_post_custom($post->ID);
if ( $postmeta[‘featured_value’][0] == ‘on’ ) continue;
rest of loop code here …
endwhile;
?>
Thanks, it works now! There’s a side-effect to that though. For example, if in the Settings it’s set to display 5 entries per page, and 3 of those entries are “featured” posts, only 2 entries show up instead of 5 non-featured post showing up.
I’m sure there’s an easy fix to that. Any help?
You could put this before the loop to increase the number of posts:
query_posts(‘posts_per_page=8’);
Well, the thing is, this a theme that will be sold so as a developer, I don’t know how many posts will be set to be displayed on the homepage. That being said, I also don’t know how many featured posts will be set, and of the number that is set, how many will actually have the “featured” meta value.
Unfortunately, I cannot think of an easy solution off-hand (which is not to say there might not be one).
Maybe the best solution is to forget everything I said, and use WP_Query to create a custom main loop that only includes non-featured posts.
How would I do that? I can just do a WP_Query that lists posts that don’t have the meta value but then if in the database there are more “featured” posts than what the user specifies to be displayed in the slider, they will just not appear anywhere.