为WordPress中的自定义帖子类型设置主体ID



我已经在 functions.php中开发了一个函数,以根据页面模板或父页面模板为身体标签添加特定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 )返回任何内容。

是否有一种方法可以更改我的功能来满足这些自定义帖子类型或将自定义帖子类型分配给特定的"页面"?

感谢您的帮助。

<?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。如果您想将它们存储在数组中并从那里与它们合作,则前提将几乎相同。我尚未测试代码,但应该与自定义帖子类型一起使用。

最新更新