go41

Exclude one headline post from frontpage but not if is paged

von Joern am 2. Dez. 2012 | Keine Kommentare

The problem: I got a WordPress site with feature headline, the latest post of headline category.
Below I want to show all posts from all categories except this one.
But I want to display older posts from this category headline together with any post of any other category.
Next problem with this site, on frontpage have to be 6 posts plus the headline, on following pages is no headline and there should be displayed more posts.

Live on Great Geadgets

This is how I solved this problem for me, the name for that headline category is Headline with ID 6.

the first loop:
<?php get_header(); ?>
<?php if(!is_paged()) { ?>

<?php query_posts(„showposts=1&category_name=Headline“); //retrieves 1 post from headline ?>
<?php while (have_posts()) : the_post(); ?>
<?php $do_not_duplicate = $post->ID; ?>

now do stuff for first post like title and content

<?php endwhile; ?>

<?php } //end if is only not paged headline post ?>

Now I start a loop quering for all posts and leaving the one above out:

<?php
$page = (get_query_var(‚paged‘)) ? get_query_var(‚paged‘) : 1;
$num_of_posts = get_option(‚posts_per_page‘);
if ( !is_paged()){
query_posts(„cat=-6&paged=$page&posts_per_page=6“);
} else {
query_posts(„paged=$page&posts_per_page=$num_of_posts“); } ?>
<?php $i = 1; ?>
<?php while (have_posts()) : the_post(); if( $post->ID == $do_not_duplicate ) continue; update_post_caches($posts); ?>
<?php if ( $paged < 2 ) { ?>

now do stuff for first page, limited to 6 post and exclude category Headline (ID 6) from that loop, here is the place to style the frontpage and the way how to display posts.

<?php } else { //now if is paged ?>

do stuff for following pages and take the number of pages from the settings in options

<?php } //end if else paged ?>

<?php endwhile; ?>

<div class=“navigation“> This comes normally close to the end of a template

It would be great to exclude a single post by post ID from the second loop, I did not find an easy way for that yet. I mean something like query_posts and exclude a post by $post->ID what you can get from the first loop

exclude post WordPress

Autor:

Du findest mich auch auf Twitter und Facebook!

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.


Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.