답변:
사용 get_page_by_path($page_path)
:
$page = get_page_by_path( 'about' );
echo get_the_title( $page );
일반 포스트 객체를 반환합니다.
$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;
}
위의 설명에서 우리는 게시물 객체를 $ page에 할당했습니다-일단 게시물 객체가 있으면 여기에 설명 된 정보를 얻을 수 있습니다 : https://codex.wordpress.org/Class_Reference/WP_Post
$page->ID
$page->post_status
$page->post_title
그리고 훨씬 더