I don’t use menus that simply display all posts from one category as one can do using a custom menu (to be created via the Dashboard > Appearance > Menus). Instead, I use pages with a “custom Template” that displays such post with futher flexibility.
Click to Read More
- Create a new “Page Template” (a php file) named “page-of-post.php” and save that one into the root folder of your theme if not yet available: \\<YourSynology>\web\wordpress\wp-content\themes\<YourTheme>\
- In this page Template, you should have the code provided at the bottom of this post.
- Go to the “Dashboard” > “Pages”, and click “Add New” to create a blank page.
- Type a name for your page. This name will be displayed in the menu (Header).
- In the “Page Attributes” pane, select “Page of Post” as a “Template” for the new page.
- Publish the page
- Add now that page to the Custom Menu (via the Dashboard > Appearance > Menus).
- Finally, possibly create one “Category Sticky” post which will stay at the bottom of the page and introduce the topic (E.g.: when creating a post, add a category in the “Category Sticky” pane made available via the Plugin “Category Sticky Posts” 0.13 of Brian Zeligson)
Here is the code of the page Template. Pay attention that I am using the theme ‘twentyeleven’:
[code language=”php”] <?php/*
Template Name: Page Of Posts
*/
// if you are not using this in a child of Twenty Eleven, you need to replicate the html structure of your own theme.
get_header(); ?>
<div id="primary">
<div id="content" role="main">
<?php
$slug = basename(get_permalink());
$paged = (get_query_var(‘paged’)) ? get_query_var(‘paged’) : 1;
$args= array(
‘category_name’ => $slug, // Change these category SLUGS to suit your use. Ex.: "categ1, categ2"
‘paged’ => $paged
);
query_posts($args);
$category = get_category_by_slug($slug);
if(empty($category))
$name = $slug;
else
$name = $category->name;
if( have_posts() ) :?>
<?php twentyeleven_content_nav( ‘nav-above’ ); ?>
<?php /* Start the Loop */ ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( ‘content’, get_post_format() ); ?>
<?php endwhile; ?>
<?php twentyeleven_content_nav( ‘nav-below’ ); ?>
<?php else : ?>
<article id="post-0" class="post no-results not-found">
<header class="entry-header">
<h1 class="entry-title"><?php _e( ‘Nothing Found in the Category "’.$name.’"’, ‘twentyeleven’ ); ?></h1>
</header><!– .entry-header –>
<div class="entry-content">
<p><?php _e( ‘Apologies, but no results were found for the requested archive. Perhaps searching will help find a related post.’, ‘twentyeleven’ ); ?></p>
<?php get_search_form(); ?>
</div><!– .entry-content –>
</article><!– #post-0 –>
<?php endif; ?>
</div><!– #content –>
</div><!– #primary –>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
[/code]
Leave a Reply