Also how would i fit the loop in with the code above!
for example
<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
<div id class="content_container"> <?php get_sidebar ();?>
<div id class="main_content">
imho, this should look like:
<?php if (is_page (array('Home', 'About', 'Services', 'Pricelist', 'Contact'))) ?>
<?php get_template_part( 'loop','page'); ?>
<?php if (is_page ('News')) ?>
<?php get_template_part( 'loop','news');?>
<?php if (is_page ('Portfolio')) ?>
<?php get_template_part( 'loop', 'portfolio');?>
http://codex.wordpress.org/Function_Reference/is_page
http://codex.wordpress.org/Function_Reference/get_template_part
(your way, i.e. <?php get_template_part( 'loop-news');?> might possibly work as well)
Also how would i fit the loop in with the code above!
you would create three template files:
loop-page.php
loop-news.php
loop-portfolio.php
and have the loop within these templates.
yes that is what i have done, but i want the loop in with this code
<?php if (is_page (array('Home', 'About', 'Services', 'Pricelist', 'Contact'))) ?>
<?php get_template_part( 'loop','page'); ?>
<?php if (is_page ('News')) ?>
<?php get_template_part( 'loop','news');?>
<?php if (is_page ('Portfolio')) ?>
<?php get_template_part( 'loop', 'portfolio');?>
so i can adjust the div tags in the portfolio page and news page if you know what i mean. as with each new post i get the container and content divs whereas i want each post in the 1 content div.
Looking at the code you could use the page slug and locate template
<?php locate_template( $template_names, $load, $require_once ) ?>
UNTESTED: Then you could use something like Locate it and Load it
<?php
global $post;
$template_names = array();
$template_names[]='loop-' .$post->post_name .'.php';
$template_names[]='loop-page.php';
locate_template( $template_names, true, true );
?>
If we have a template part called loop-news.php and the post slug
Note: name = news and title = News) so name is the page slug and the loop name to look for, as it will give a nice loop-news.php
If it finds the file loop-{slug}.php it will return first in the array if not second loop-page.php
HTH
David 🙂
yea that works does the same as what i had. thanks.
any idea why my
<?php get_header();?>
<div class="content_container"> <?php get_sidebar ();?>
<div class="main_content">
</div>
</div>
wont work with the code above.
Whitespace?
<?php get_sidebar ();?>
<?php get_sidebar(); ?>
yea that works does the same as what i had. thanks.
A bit more dynamic and tidy, as you only need to drop in another loop file like loop-sport.php and title the page anything like Sports News and the page slug sport, no need to add in another if statement! 🙂
HTH
David
Yeah that would be handy. Thanks for the tip. Still cant get the div tags working in the page.php file, just shows plain content then.
Put the whole page code up on pastebin and paste back the pastebin link url.
David
pastebin
Thanks a lot for having a look.
You are getting Template Pages and Template Parts mixed up!
Template Page is for a custom page where as the template part is for a custom loop, you only need the second the page loop and not the template page!
I have created an example based on your code, this is UNTESTED: and has both a page.php and a loop-{slug}.php
It is late in the UK so I will not respond again today!
HTH
David