การแสดงผลตามเงื่อนไขด้วยภาษา PHP
<?php global $post; if($post->post_parent == 0) $page = $post->post_name; else { $post_data = get_post($post->post_parent); $page = $post_data->post_name; } ?>
คือ การเช็คค่าว่าหน้ารองนี้อยู่ในหน้าหลักอะไร ซึ่งคำสั่งนี้ก็สามารถนำไปประยุคใช้ได้ในหลายๆรูปแบบเลยทีเดียว
- คำสั่ง global $post; คือ การเรียกใช้ตัวแปร $post
- คำสั่ง if($post->post_parent == 0) คือ ถ้าหน้ารองมีค่าเท่ากับศูนย์ หรือ ไม่มีหน้ารอง
- คำสั่ง $page = $post->post_name; คือ ให้เก็บค่าหน้าหลักไว้ใส่ตัวแปร $page
- คำสั่ง else คือ นอกเหนือจากคำสั่ง if หรือ ในนี้ก็หมายถึงหน้ารองมีค่าไม่เท่ากับศูนย์
- คำสั่ง $post_data = get_post($post->post_parent); คือ ให้เก็บค่าหน้ารองไว้ใส่ตัวแปร $post_data ก่อน<
- คำสั่ง $page = $post_data->post_name; คือ $post_data ก็จะนำค่ามาเช็คว่าอยู่ในหน้าหลักไหนแล้วนำค่านั้นมาเก็บในตัวแปร $page
หน้ารอง (Sub Page)
ตัวอย่างโค้ด
<?php global $post; if($post->post_parent == 0) $page = $post->post_name; else { $post_data = get_post($post->post_parent); $page = $post_data->post_name; } $sidebar = ''; switch($page) { case 'about': $sidebar = 'sidebar-1'; break; case 'program': $sidebar = 'sidebar-2'; break; default: $sidebar = 'sidebar-3'; } dynamic_sidebar( $sidebar ); ?>
ตัวอย่างการเช็คว่าถ้าหน้ารองไหนที่อยู่ในหน้าหลักเดียวกัน ให้แสดง Sidebar ตัวเดียวกัน
- คำสั่ง switch($page) คือ คำสั่งตั้งเงื่อนไข
- คำสั่ง case ‘about’: คือ ถ้าตัวแปรมีค่าเท่ากับ about
- คำสั่ง $sidebar = ‘sidebar-1’; คือ ให้เก็บค่า sidebar-1 ไว้ในตัวแปร $sidebar
- คำสั่ง dynamic_sidebar( $sidebar ) คือ คำสั่งเรียกใช้ sidebar ตามค่าตัวแปร $sidebar
- สรุปคำสั่ง คือ ถ้าหน้ารองไหนอยู่ในหน้าหลัก about ก็จะแสดง sidebar-1 และ ถ้าหน้ารองไหนอยู่ในหน้าหลัก program ก็จะแสดง sidebar-2 นอกเหนือจากนี้ก็จะแสดง sidebar-3 นั้นเอง