Chức năng trả về true nếu trang hiện tại có trang con


8

Tôi đang cố gắng tạo một chức năng đơn giản để thực hiện "kiểm tra trạng thái". Mục tiêu là kiểm tra và xem trang hiện tại đang được xem có trang con nào hay không. Sử dụng điều này để thay đổi bố cục để chứa các trang con. Các mã sau đây có vẻ như nó nên hoạt động, nhưng than ôi, không có xúc xắc.

Bất cứ ai cũng thấy những gì tôi đang thiếu?

function is_subpage() {
global $post;                              // load details about this page

if ( is_page() && $post->post_parent ) {   // test to see if the page has a parent
    return true;                                            // return true, confirming there is a parent

} else {                                   // there is no parent so ...
    return false;                          // ... the answer to the question is false
}

}

Câu trả lời:


13

Chức năng trên của bạn kiểm tra xem một trang có phải là trang con của một số trang khác hay không, liệu trang đó có con hay không.

Bạn có thể kiểm tra cho trẻ em của trang hiện tại như vậy:

function has_children() {
    global $post;

    $children = get_pages( array( 'child_of' => $post->ID ) );
    if( count( $children ) == 0 ) {
        return false;
    } else {
        return true;
    }
}

Đọc thêm:


7

Đây là phiên bản cho bất kỳ loại bài đăng nào, trong trường hợp nếu bạn đang sử dụng loại bài đăng tùy chỉnh

function has_children($post_ID = null) {
    if ($post_ID === null) {
        global $post;
        $post_ID = $post->ID;
    }
    $query = new WP_Query(array('post_parent' => $post_ID, 'post_type' => 'any'));

    return $query->have_posts();
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.