<?php get_page_by_path( $page_path, $output, $post_type ) ?>

(string) (必须) 页面路径
Default: None

(string) (可选) 输出类型. OBJECT, ARRAY_N, or ARRAY_A.
Default: OBJECT

(string) (可选) 文章类型.
Default: page
Null when complete.

这个等价于通过 ‘pagename’ 来查找, 类似: ‘index.php?pagename=parent-page/sub-page’.

Code for the above could be written as (assuming ‘parent-page/sub-page’ is actually the path to a page):


For non-heirarchical custom post types, you need to use just the slug in tandem with the post_type parameter.

//Returns nothing, assumes animals is the rewrite slug for the animal CPT

get_page_by_path('animals/cat', OBJECT, 'animal');

//Returns the animal with the slug ‘cat’

get_page_by_path('cat', OBJECT, 'animal');

The functions basename() and untrailingslashit() are handy for grabbing the last part of the URL for this:

$page_path = ‘animals/cat/’;

get_page_by_path( basename( untrailingslashit( $page_path ) ) , OBJECT, 'animal');


get_page_by_path() 位于wp-includes/post.php.