Wordpress Themes - WP Forum at BFA

Wordpress Themes - WP Forum at BFA (http://forum.bytesforall.com/index.php)
-   Page & Category Menu Bars (http://forum.bytesforall.com/forumdisplay.php?f=10)
-   -   [SOLVED] On certain page only posts from specific category (http://forum.bytesforall.com/showthread.php?t=4443)

RijnmondE4 Nov 15, 2009 10:58 AM

[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 ??

RijnmondE4 Nov 16, 2009 04:25 PM

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.

juggledad Nov 16, 2009 07:46 PM

What happens when you save that as a template and then build a page using the templage?

RijnmondE4 Nov 17, 2009 03:13 PM

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 02:43 AM.

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