WordPress Code : Phát hiện Page Parent, Child và Ancestor

03/03/2014

Mặc định, WordPress cho phép chúng ta đặt các câu lệnh điều kiện dùng để kiểm tra nội dung cần xuất cho những template chỉ định. Ví dụ như is_page(), is_home(), is_single()… Tuy nhiên nó lại thiếu những câu lệnh hữu ích khác như kiểm tra xem trang này có phải là cha của trang kia (Page Parent), hoặc là con (Child parent) hoặc là trang gốc (Ancestor – tức không là con của thằng nào).

parentchildpages

Hôm nay mình sẽ bày cho các bạn một cách để có thể tạo những câu điều kiện như thế. Trước hết chúng ta cần vào file functions.php hoặc custom_functions.php, rồi sau đó copy từng đoạn code tương ứng như sau :

Kiểm tra xem trang đó có trang con không (Page Parent)

function is_parent()
{
    global $post;
    $pages = get_pages("child_of=".$post->ID);
    if ($pages) return true;
}

Sử dụng :

if (is_parent()){
//custom code
}

Kiểm tra xem trang có phải là trang con của một trang chỉ định không (Child Page)

function is_child($post_id)
{
    global $post;
    if(is_page()&&($post->post_parent==$post_id))
               return true;
    else
               return false;
}

Sử dụng :

if (is_child(5)){
//custom code
}

Ancestor Page

function is_ancestor($post_id) {
    global $wp_query;
    $ancestors = $wp_query->post->ancestors;
    if ( in_array($post_id, $ancestors)) {
        return true;
    } else {
        return false;
    }
}

Sử dụng :

if (is_ancestor(5)){
//custom code
}

Hy vọng những chia sẻ trong bài viết này, sẽ giúp ích cho các bạn trong việc phát triển theme cho trang WordPress của mình.

Chuyên Mục:

Bài viết được đăng bởi webmaster

Nếu các bạn thấy bài viết hữu ích thì giúp mình Like cái nhé !