我在functions.php
中开发了一个函数,根据页面模板或父页面模板(如果它是子页面)为body标签添加特定的id。
function get_body_id() {
global $post;
$parents = get_post_ancestors( $post->ID );
$parent_id = ($parents) ? $parents[count($parents)-1]: $post->ID;
$temp = get_page_template_slug($parent_id);
$path = pathinfo($temp);
$temp = $path['filename'];
switch ( $temp ):
case 'page-recipe-landing':
$id = 'bg-green';
break;
case 'page-home':
default:
$id = 'bg-pink';
break;
endswitch;
echo "id='".$id."'";
}
这适用于网页及其子网,但对于我的自定义帖子类型事件/新闻和食谱,这显然不会为get_post_ancestors( $post->ID )
返回任何内容。
有没有办法改变我的功能以满足这些自定义帖子类型或将自定义帖子类型分配到特定的“页面”?
感谢您的帮助。
答案 0 :(得分:0)
<?php
if(empty($parents)) {
$loop = new WP_Query(array('post_type' => 'NAME_OF_TYPE', 'post_status' => 'publish'));
while($loop->have_posts()): $loop->the_post();
the_ID();
endwhile;
}
?>
此代码至少应输出自定义类型为NAME_OF_TYPE
的每个帖子的ID。如果你想将它们存储在数组中并从那里使用它们,那么前提几乎是一样的。我没有测试过代码,但它应该适用于自定义帖子类型。