[SOLVED] On certain page only posts from specific category
Discovered WordPress and found Atahualpa. Using versions 2.8.2 and 3.4.4 respectively.
I wanted a structure where posts from a specific category would only appear on a predefined page. On the WordPress Forum I found reference to a "PageOfPosts.php" function. I tried this, but it won't work with Atahualpa. Am I doing something wrong (should I be using Category menu on top in stead of page menu?) or is there a solution I couldn't find ?? |
OK I've figured out that using Cat menu will not work for me.
I've tried several plugins in the mean time: page2cat and Sobek's Posts in Category (in combination with Exec-PHP). But neither will work for me. WordPress docs on pages describes exactly what I want to achieve: A Page of Posts A Page Template that displays posts from a specific category depending on what Page is being displayed. This is designed to work with the WordPress Default theme (aka Kubrick), but may work with other themes with a little modification. Save this to pageofposts.php: <?php /* Template Name: PageOfPosts */ get_header(); ?> <div id="content" class="narrowcolumn"> <?php // page id 21 will get category ID 12 posts, page 16 will get category 32 posts, page 28 will get category 17 posts if (is_page('21') ) { $cat = array(12); } elseif ( is_page('16') ) { $cat = array(32); } elseif ( is_page('28') ) { $cat = array(17); } else { $cat = ''; } $showposts = -1; // -1 shows all posts $do_not_show_stickies = 1; // 0 to show stickies $args=array( 'category__in' => $cat, 'showposts' => $showposts, 'caller_get_posts' => $do_not_show_stickies ); $my_query = new WP_Query($args); ?> <?php if( $my_query->have_posts() ) : ?> <?php while ($my_query->have_posts()) : $my_query->the_post(); ?> <?php //necessary to show the tags global $wp_query; $wp_query->in_the_loop = true; ?> <div <?php post_class() ?> id="post-<?php the_ID(); ?>"> <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2> <small><?php the_time('F jS, Y') ?> <!-- by <?php the_author() ?> --></small> <div class="entry"> <?php the_content('Read the rest of this entry »'); ?> </div> <p class="postmetadata"><?php the_tags('Tags: ', ', ', '<br />'); ?> Posted in <?php the_category(', ') ?> | <?php edit_post_link('Edit', '', ' | '); ?> <?php comments_popup_link('No Comments »', '1 Comment »', '% Comments »'); ?></p> </div> <?php endwhile; ?> <?php else : ?> <h2 class="center">Not Found</h2> <p class="center">Sorry, but you are looking for something that isn't here.</p> <?php get_search_form(); ?> <?php endif; ?> </div> <?php get_sidebar(); ?> <?php get_footer(); ?> However, this doesn't work with Atahualpa. Where can I insert this code to achieve the desired effect. |
What happens when you save that as a template and then build a page using the templage?
|
Solved the problem.
I used the code I described in my previous (second) post in this thread. I inserted most of this code into the main template (index.php). To make it work I had to create a SECÖND LOOP as described in page of posts part. This resulted in the fixed text of the "Page" on top and posts from a specific category beneath that. Just like I wanted. I'll leave out the coding for now, but in case anyone is interested .... |
All times are GMT -6. The time now is 11:00 PM. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.