Я досить нова у wordpress, і мені було цікаво, чи зможу я отримати page id
це slug
? Чи можливо, будь ласка, дайте мені знати.
Я досить нова у wordpress, і мені було цікаво, чи зможу я отримати page id
це slug
? Чи можливо, будь ласка, дайте мені знати.
Відповіді:
Використання 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
вже повертає нуль…
Про це вже запитували і відповіли на цьому форумі. Я вставляю звідти той же код. Використовуйте цю функцію для отримання ідентифікатора сторінки.
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
Тут багато відповідей, які здаються надто складними, або не описують, як конкретно отримати ідентифікатор сторінки.
$page = get_page_by_path("your-page-slug");
if ($page) {
$page_id = $page->ID;
echo $page_id;
}
У наведеному вище описі ми присвоїли об'єкт поштового зв’язку на сторінці $. Після отримання об'єкта публікації ви можете отримати будь-яку інформацію, описану тут: https://codex.wordpress.org/Class_Reference/WP_Post
$page->ID
$page->post_status
$page->post_title
і багато іншого