Wp 3.5.1中是否存在is_Child()?

时间:2013-05-29 作者:beta208

我试图找出如何获得is\\u child()等价物;我希望能够以父页面及其子页面为目标。如何做到这一点?

我的伪代码是。。。

if (is_page(\'pagename\') || is_child(\'pagename\')) {...}
。。。但是,is\\u child()似乎不起作用。我希望它能回归真实。

3 个回复
最合适的回答,由SO网友:iyrin 整理而成

要检查特定的父ID,请使用$post->post_parent=="123" 并将“123”替换为您选择的父ID。

我通过使用小部件逻辑插件学习了如何做到这一点。从Widget Logic notes:

global $post; return (is_page(\'pagename\') || ($post->post_parent=="13")); -- 主页或第13页的子页

编辑:更好的来源是Testing for sub-Pages 在法典中。

SO网友:Stephen Harris

这将检查后代关系,而不是严格的父子关系:

/**
 * Is the current page a descendent of page identified by the path (not slug).
 * A page is not a descendent of itself!
 * @param string $page_path The path of the page, e.g. mypage/mysubpage 
 * @return boolean True if current page is a descednent of specified $page_path. False otherwise.
 */
function is_descendent_of( $page_path ){

    if( !is_page() ){
        return false;
    }

    $ancestors = get_post_ancestors( get_queried_object_id() );
    $page = get_page_by_path( $page_path );
    if( $page )
        return in_array( $page->ID, $ancestors );
    return false;   
}
对于严格的父子检查:

/**
 * Is the current page a child of the page identified by the path (not slug).
 * A page is not a child of itself! Child != descendant.
 * @param string $page_path The path of the page, e.g. mypage/mysubpage
 * @return boolean True if current page is a child of specified $page_path. False otherwise.
 */
function is_child_of( $page_path ){

    if( !is_page() ){
        return false;
    }

    $page = get_page_by_path( $page_path );
    $current_page = get_post();

    if( $page )
        return $current_page->post_parent == $page->ID;
    return false;
}

SO网友:brasofilo

搜索此函数以与小部件逻辑一起使用,我发现this snippet, 适应波纹管:

/**
 * Check if a page is child of another 
 * 
 * @param mixed $page_id_or_slug Provide the parent ID or Slug
 * @return bool Whether the page is child or not of the given parent
 */
function is_child( $page_id_or_slug ) 
{ 
    global $post; 
    if( !is_page() )
        return false;

    # Slug provided, get ID
    if( !is_int( $page_id_or_slug ) ) 
    {
        $page = get_page_by_path( $page_id_or_slug );
        $page_id_or_slug = $page->ID;
    } 

    return $post->post_parent == $page_id_or_slug; 
}

结束

相关推荐

将唯一类添加到WP_LINK_PAGES中的下一个和上一个

我正在为wp\\U link\\U页面使用以下函数。It can be viewed in use here.我想在上一个链接中添加一个类,在下一个链接中添加一个类,这样它们就可以单独设置样式。我不是WP函数的专家,我很好奇这样做的正确方法是什么。我总是可以简单地在每个div周围回显div,但似乎有更好的方法可以做到这一点。// WP_LINK_PAGES: Add prev and next links to a numbered link list add_filter(\'wp_link_p