WordPress Templates Cookbook: Difference between revisions
Jump to navigation
Jump to search
| Line 30: | Line 30: | ||
* Create the top-level page (as a WordPress "page", not a WP "post"). The page can have any sort of content. | * Create the top-level page (as a WordPress "page", not a WP "post"). The page can have any sort of content. | ||
* Create 2nd-level pages and assign the top-level page as their parent. | * Create 2nd-level pages and assign the top-level page as their parent. | ||
* Create a template for the sub-navigation menu, i.e. `page-navmenu.php`. | |||
* Include the page navigation menu inside the loop. | |||
<syntaxhighlight lang="php"> | |||
get_template_part('page-navmenu'); | |||
</syntaxhighlight> | |||
* Inside the sub-navigation menu template: | |||
** Get the id of the parent page: | |||
<syntaxhighlight lang="php"> | |||
$top_parent_id = 0; | |||
if ($post->ancestors) { | |||
// Grab the ID of top-level page from the tree | |||
$top_parent_id = end($post->ancestors); | |||
} | |||
</syntaxhighlight> | |||
[[Category:WordPress]] | [[Category:WordPress]] | ||
[[Category:Web Development]] | [[Category:Web Development]] | ||
Revision as of 18:16, 24 January 2013
Overview
Documentation on how to set up various common features in WordPress.
Inserting a custom content template in a page
- Within the top-level WordPress template (e.g.
page.php)
<?php get_template_part( 'modules-sidebar-donate-link' ); ?>
- The string passed as the argument to
get_template_part()corresponds to a WordPress template in the themes directory. So'modules-sidebar-donate-link'means there should be a template namedmodules-sidebar-donate-link.php. - Template markup goes in the template file (
modules-sidebar-donate-link.phpin this case).- Content can be retrieved within the template using
WP_Query().
- Content can be retrieved within the template using
<?php $query = new WP_Query("post_parent=123&post_type='page'&orderby=order&order=ASC"); /* 123 = "landing page slideshow" page */ ?>
- Then a loop would be created within the template:
<?php if ($query->have_posts()) while($query->have_posts()): $query->the_post(); ?> <div><!--// Content inserted here using markup and WP content retrieval methods. //--></div> <?php endwhile; ?>
When landing on a content section page, load a sub-navigation menu dynamically using pages that have that top-level content section page as their parent.
Example: http://rsrt.dbarchowsky.com/about-rsrt/
- Create the top-level page (as a WordPress "page", not a WP "post"). The page can have any sort of content.
- Create 2nd-level pages and assign the top-level page as their parent.
- Create a template for the sub-navigation menu, i.e.
page-navmenu.php. - Include the page navigation menu inside the loop.
get_template_part('page-navmenu');
- Inside the sub-navigation menu template:
- Get the id of the parent page:
$top_parent_id = 0;
if ($post->ancestors) {
// Grab the ID of top-level page from the tree
$top_parent_id = end($post->ancestors);
}