2016-05-24 2 views
0

階層型のカスタム投稿タイプがあります。私は3レベルのページを持っています。私はトップレベル、第2レベル、第3レベルのいずれにあるかを検出する方法が必要です。私はこれを調べて、is_page()で動作するサンプルを見つけることができますが、明らかにCPTでは動作しません。Wordpress - 1st/2nd/3rdレベルのカスタムページの場合は?

function nldf_gallery() { 
     $labels = array(
      'name'    => 'NLDF', 
      'singular_name'  => 'NLDF', 
      'add_new'   => 'Add New', 
      'add_new_item'  => 'Add New NLDF', 
      'edit_item'   => 'Edit NLDF', 
      'new_item'   => 'New NLDF', 
      'all_items'   => 'All NLDF', 
      'view_item'   => 'View NLDF', 
      'search_items'  => 'Search NLDF', 
      'not_found'   => 'No NLDF found', 
      'not_found_in_trash' => 'No NLDF found in Trash', 
      'menu_name'   => 'NLDF' 
     ); 

     $args = array(
      'labels'    => $labels, 
      'public'    => true, 
      'hierarchical'  => true, 
      'has_archive'  => false, 
      'menu_position'  => 4, 
      'menu_icon'   => 'dashicons-format-gallery', 
      'supports'   => array('title','editor','comments','revisions','page-attributes') 
     ); 

     register_post_type('nldf', $args); 

    } 
    add_action('init', 'nldf_gallery'); 

ありがとう!

+0

OR - ページのレベルごとに異なるテンプレートを使用する方法 – RiddleMeThis

答えて

0

回答のためのwp stackexchangeからAndy Macaulay-Brookの功績はあったが、誰でもそれを見つけるためにここに投稿したいと思った。

$level = count(get_ancestors(get_queried_object_id(), 'nldf')); 

add_filter('body_class','nldf_page_class_names'); 
function nldf_page_class_names($classes) { 
    // add 'class-name' to the $classes array 
    $classes[] = 'single-nldf-' . $level; 
    // return the $classes array 
    return $classes; 
} 

get_header('nldf-' . $level); 
// loads header-nldf-0.php, header-nldf-1.php or header-nldf-2.php 

get_template_part('loop', 'nldf-' . $level); 
// loads loop-nldf-0.php, loop-nldf-1.php or loop-nldf-2.php 

get_footer('nldf-' . $level); 
// loads footer-nldf-0.php, footer-nldf-1.php or footer-nldf-2.php 
関連する問題