Answers:
用途get_page_by_path($page_path)
:
$page = get_page_by_path( 'about' );
echo get_the_title( $page );
这将返回一个常规的post对象。
$page = get_page_by_path( 'about/child' );
get_page_by_path
使用该post_name
字段post_slug
。
我一直在用这个..
function get_id_by_slug($page_slug) {
$page = get_page_by_path($page_slug);
if ($page) {
return $page->ID;
} else {
return null;
}
}
希望这会帮助某人。
get_page_by_path
已经返回null…
在此论坛上已经有人问过并回答过。我从那里粘贴相同的代码。使用此功能检索页面ID。
function get_page_by_slug($page_slug, $output = OBJECT, $post_type = 'page' ) {
global $wpdb;
$page = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_name = %s AND post_type= %s AND post_status = 'publish'", $page_slug, $post_type ) );
if ( $page )
return get_post($page, $output);
return null;
}
尝试在同一页面中多次使用代码时,选择的答案出现问题。在每种情况下,它都会同时显示我所有页面的内容。因此,我重新思考并根据WordPress Codex的文档提出了一种更简单的方法:
<?php $query = new WP_Query( array( 'pagename' => 'about-me' ) );
while ( $query->have_posts() ) {
$query->the_post();
echo '<h2>'. get_the_title() .'</h2>';
the_content();
}
wp_reset_postdata();
?>
也许它仍然对外面的人有帮助; D
这里有很多答案似乎过于复杂,或者没有具体说明如何获取页面ID。
$page = get_page_by_path("your-page-slug");
if ($page) {
$page_id = $page->ID;
echo $page_id;
}
在上面的描述中,我们已将post对象分配给$ page-一旦拥有post对象,您就可以获取此处描述的任何信息:https : //codex.wordpress.org/Class_Reference/WP_Post
$page->ID
$page->post_status
$page->post_title
还有更多