is_subpage 如何判断页面层级WordPress函数

在 WordPress 中,页面是分层级的。那么如何判断页面层级呢?WordPress 并没有提供现成的函数,不过,好消息是也容易判断。

  1. global $post;
  2. if (is_page() && $post->post_parent) {
  3.     echo '这是一个子页面';
  4. } else {
  5.     echo '这不是子页面';
  6. }
也想出现在这里?联系我们
创客主机

如果,经常要用,就封装一个函数:

  1. function is_subpage()
  2. {
  3.     global $post;
  4.     if (is_page() && $post->post_parent) {
  5.         return $post->post_parent;
  6.     } else {
  7.         return false;
  8.     }
  9. }

要测试页面的父页面是否是特定页面,例如“About”,并给其设置一个不一样的 Banner。

  1. if (is_page('about') || '2' == $post->post_parent) {
  2.     $bannerimg = 'about.jpg';
  3. } elseif (is_page('learning') || '56' == $post->post_parent) {
  4.     $bannerimg = 'teaching.jpg';
  5. } elseif (is_page('admissions') || '15' == $post->post_parent) {
  6.     $bannerimg = 'admissions.jpg';
  7. } else {
  8.     $bannerimg = 'home.jpg';
  9. }

下面是一个函数,更轻松地执行上述测试。如果我们正在查看有问题的页面(即“关于”)或其子页面之一(即 ID 为“2”的父页面),此函数将返回 true。

  1. function is_tree($pid)
  2. {
  3.     global $post;
  4.  
  5.     if (is_page($pid))
  6.         return true;
  7.  
  8.     $anc = get_post_ancestors($post->ID);
  9.     foreach ($anc as $ancestor) {
  10.         if (is_page() && $ancestor == $pid) {
  11.             return true;
  12.         }
  13.     }
  14.  
  15.     return false;
  16. }

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!