User Tools

Site Tools


components-depending-on-the_page

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
components-depending-on-the_page [2014/02/05 20:48]
Timbow [A System for Different Components on Different Pages]
components-depending-on-the_page [2017/02/28 00:56] (current)
Timbow [Several Pages Each with Different Components]
Line 5: Line 5:
  
 Don't forget to replace **PAGE** with your **page'​s slug** and **COMPNAME** with the **component'​s name**. Don't forget to replace **PAGE** with your **page'​s slug** and **COMPNAME** with the **component'​s name**.
 +
 +=====Several Pages Each with Different Components=====
 +Say you have three pages with the slugs //index//, //about//, //contact// and sidebars as components named //peter//, //paul// and //mary// you would edit your template to replace <​code><?​php get_component(sidebar);​ ?></​code>​ with
 +<​code>​
 +<?php if (return_page_slug()=='​index'​) {get_component('​peter'​);​}
 + ​elseif (return_page_slug()=='​about'​) {get_component('​paul'​);​}
 +else {get_component('​mary'​);​} ?> </​code>​
 +which in English reads
 +
 +>**If** the page slug is //index// insert the component //peter//, **otherwise if** the page slug is //about// insert the component //paul// and **otherwise** just insert the component //mary//.
 +
 +
  
 ===== Components Depending On The Parent Page ===== ===== Components Depending On The Parent Page =====
Line 21: Line 33:
  
 The following text needs to be in a functions.php file in your theme folder: The following text needs to be in a functions.php file in your theme folder:
-<​file><?​php+<​file ​php><?​php
 if (!function_exists('​component_exists'​)) { if (!function_exists('​component_exists'​)) {
     function component_exists($id) {     function component_exists($id) {
Line 48: Line 60:
  
 Make a component which will be the default component and call it say //​default//​. Make components for specific pages and name them to include the page slug of the page into which they are to be inserted, so name them say //​content-about//​ and //​content-contact//​. Then call the component in your page template as follows: Make a component which will be the default component and call it say //​default//​. Make components for specific pages and name them to include the page slug of the page into which they are to be inserted, so name them say //​content-about//​ and //​content-contact//​. Then call the component in your page template as follows:
-<​code>​+<​code ​php>
 <?​php ​ if (component_exists('​content-'​.get_page_slug(false))) <?​php ​ if (component_exists('​content-'​.get_page_slug(false)))
    {get_component('​content-'​.get_page_slug(false));​}    {get_component('​content-'​.get_page_slug(false));​}
components-depending-on-the_page.1391633336.txt.gz ยท Last modified: 2014/02/05 20:48 by Timbow