Jawaban:
Gunakan get_page_by_path($page_path)
:
$page = get_page_by_path( 'about' );
echo get_the_title( $page );
Ini akan mengembalikan objek posting biasa.
$page = get_page_by_path( 'about/child' );
get_page_by_path
gunakan post_name
bidang secara internal, bukan post_slug
.
Saya sudah menggunakan ini ..
function get_id_by_slug($page_slug) {
$page = get_page_by_path($page_slug);
if ($page) {
return $page->ID;
} else {
return null;
}
}
Semoga ini bisa membantu seseorang.
get_page_by_path
sudah mengembalikan nol ...
Sudah ditanyakan dan dijawab di forum ini. Saya menempelkan kode yang sama dari sana. Gunakan fungsi ini untuk mengambil id halaman.
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;
}
Saya mengalami masalah dengan jawaban yang dipilih ketika mencoba menggunakan kode beberapa kali di halaman yang sama. Itu terus menampilkan semua konten halaman saya pada waktu yang sama di setiap contoh. Jadi saya kembali berpikir dan menemukan pendekatan yang lebih sederhana ini berdasarkan pada dokumentasi 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();
?>
Mungkin masih bisa membantu seseorang di luar sana; D
Banyak jawaban di sini yang tampaknya terlalu rumit, atau tidak menjelaskan cara mendapatkan ID halaman secara khusus.
$page = get_page_by_path("your-page-slug");
if ($page) {
$page_id = $page->ID;
echo $page_id;
}
Dalam uraian di atas kami telah menetapkan objek posting ke $ halaman - Setelah Anda memiliki objek posting, Anda bisa mendapatkan informasi yang dijelaskan di sini: https://codex.wordpress.org/Class_Reference/WP_Post
$page->ID
$page->post_status
$page->post_title
dan masih banyak lagi