test top bar

การตั้งเงื่อนไขแสดงผล หน้ารอง (Sub Page) ให้แสดงเหมือน หน้าหลัก (Main Page)

banner

การแสดงผลตามเงื่อนไขด้วยภาษา 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)

หน้ารอง (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 นั้นเอง