公认的答案是错误的,因为分层页面不是这样工作的。简单地说,slug并不总是页面或帖子的路径。E、 g.您的页面有一个子页面等。路径将是parent-slug/child-slug
和get_page_by_path
将无法找到child-slug
这边正确的解决方案是:
function mycoolprefix_post_by_slug($the_slug, $post_type = "page"){
$args = array(
\'name\' => $the_slug,
\'post_type\' => $post_type,
\'post_status\' => \'publish\',
\'numberposts\' => 1
);
$my_page = get_posts($args)[0];
return $my_page;
}
<a href="<?php echo mycoolprefix_post_by_slug(\'map\'); ?>">Map</a>