我有一个分层的自定义帖子类型。我有3级页面,我需要一种方法来检测我是在顶级,第二级还是第三级。我已经研究了这个,只能找到与is_page()一起使用的例子,但显然不适用于CPT。
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 :(得分: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