Get closest page ID from URL

时间:2012-06-29 作者:Scott

让我们在我的WordPress网站上导航到:

www.example。com/media centre/news/17/示例新闻帖子

在这种情况下,我正在看一篇CPT中的帖子,名为News.

我想做的是获取最接近该URL的页面ID。我知道最接近的页面ID可以在以下位置找到:

www.example。com/媒体中心/新闻/

那么,我如何在URL上循环找到最近的页面,然后如何获得该页面的ID呢?

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

在StephenHarris的帮助下,我自己在SO得到了PHP的帮助。

$page = get_closest_page();

// echo $page->ID;

function get_closest_page( $url = false )
{
    global $wp;

    if( ! $url )
        $url = $wp->request;

    $page = get_page_by_path( $url );

    if( $page )
        return $page;

    $url = dirname( $url );

    return get_closest_page( $url );
}

SO网友:Stephen Harris

您应该能够从以下位置获取当前url$url = add_query_arg().

然后假设结构:www.example.com/page/subpage/news/ID/post 您可以使用preg_match 提取/page/subpage/news. 那么使用起来就很简单了get_page_by_path();.

如果失败,您可以检查/page/subpage/ 最后/page.

结束