как получить идентификатор страницы с помощью ярлыка страницы
7 ответ
- голосов
-
- 2013-06-13
Используйте
get_page_by_path($page_path)
:$page = get_page_by_path( 'about' ); echo get_the_title( $page );
Будет возвращен обычный объект сообщения.
Документация:
https://developer.wordpress.org/reference/functions/get_page_by_path/
https://developer.wordpress.org/reference/functions/get_the_title/Use
get_page_by_path($page_path)
:$page = get_page_by_path( 'about' ); echo get_the_title( $page );
This will return a regular post object.
Documentation:
https://developer.wordpress.org/reference/functions/get_page_by_path/
https://developer.wordpress.org/reference/functions/get_the_title/-
Что,если мне нужен идентификатор дочерней страницы?What if it's a child page's id I want?
- 0
- 2013-06-13
- freaky
-
@freaky Функция принимает только заголовок страницы,а не родительский.Поскольку ярлыки уникальны,вы всегда получите только одну страницу.@freaky The function takes just the page slug, not the parent slug. Since slugs are unique, you will always get just one page.
- 2
- 2013-06-13
- fuxia
-
Спасибо,что он работает,и для дочерней страницы мне пришлось перемещаться как хиты `$page=get_page_by_path ('about/child');`Thank you it is working and for child page I had to navigate like hits `$page = get_page_by_path( 'about/child' );`
- 3
- 2013-06-13
- freaky
-
Чтобы прояснить,get_page_by_path внутренне использует полеpost_name,а неpost_slug.Just to clarify, `get_page_by_path` uses the `post_name` field internally, not `post_slug`.
- 0
- 2018-04-09
- colefner
-
Чтобы было ясно,здесь используется путь к странице,а не имя страницы,верно?Тогда на странице с названием «О нас» аргумент должен быть «о нас»,правильно?без косой черты в начале и в конце?Just to be clear, this uses the page path and not the page name, correct? Then a page named "About us" the argument should be "about-us", correct? with no beginning or trailing slashes?
- 0
- 2018-07-25
- user658182
-
Да,@ user658182Yes, @user658182
- 0
- 2018-07-25
- fuxia
-
- 2015-03-13
Я использовал это ..
function get_id_by_slug($page_slug) { $page = get_page_by_path($page_slug); if ($page) { return $page->ID; } else { return null; } }
Надеюсь,это кому-то поможет.
I've been using this ..
function get_id_by_slug($page_slug) { $page = get_page_by_path($page_slug); if ($page) { return $page->ID; } else { return null; } }
Hope this will help someone.
-
Зачем оборачивать его функцией?get_page_by_path уже возвращаетnull ...Why wrapping it in a function? `get_page_by_path` already returns null …
- 0
- 2019-03-01
- GDY
-
Потому что вопрос OP хочет вернуть идентификатор,а не объект страницы.Because the OP question wants to return ID, not the page object.
- 0
- 2019-10-16
- user1158023
-
- 2013-06-13
Об этом уже спрашивали и отвечали на этом форуме.Я вставляю тот же код оттуда. Используйте эту функцию для получения идентификатора страницы.
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; }
It has been already asked and answered on this forum. I am pasting the same code from there. Use this function to retrieve page 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; }
-
- 2016-10-08
У меня возникли проблемы с выбранным ответом при попытке использовать код несколько раз на одной странице.Он продолжал отображать все содержимое моих страниц одновременно в каждом случае.Поэтому я вернулся к размышлениям и предложил более простой подход,основанный на документации 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
I had problems with the chosen answer when trying to use the code several times in the same page. It kept on displaying all of my pages content at the same time in every instance. So I went back to thinking and came up with this simpler approach based on the WordPress Codex's documentation:
<?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(); ?>
Maybe it can still be helpful for somebody out there ;D
-
- 2019-04-05
Здесь много ответов,которые кажутся слишком сложными или не описывают,как конкретно получить идентификатор страницы.
$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
и многое другое
A lot of answers here that seem overly complex, or don't describe how to get the page ID specifically.
$page = get_page_by_path("your-page-slug"); if ($page) { $page_id = $page->ID; echo $page_id; }
In the above description we've assigned the post object to $page - Once you have the post object you can get any of the info described here: https://codex.wordpress.org/Class_Reference/WP_Post
$page->ID $page->post_status $page->post_title
and a lot more
-
- 2020-08-31
Начиная с WordPress v1.0.0 существует функция url_to_postid :) Эту задачу проще всего решить с помощью этой функции.
Если страница является страницей верхнего уровня,должен быть указан только slug.
например
url_to_postid('slug');
Когда страница находится на более низком уровне иерархии (т.е. у нее есть родительский элемент),вы должны добавить родительский слаг,разделенный косой чертой,например:
url_to_postid('parent-slug/child-slug');
There is a function url_to_postid since WordPress v1.0.0 :) This task is easiest to achieve by using this function.
When page is top-level page, only slug has to be given.
e.g.
url_to_postid('slug');
When the page is in lower hierarchy level (i.e. it has parent) you have to prepend parent slug divided by slash like so:
url_to_postid('parent-slug/child-slug');
-
- 2018-05-31
<?php function get_page_ID_by_slug( $slug ) { $page = get_page_by_path( $slug ); if ( $page ) { return (int) $page->ID; } else { return null; } } ?>
Надеюсь,это предложение кому-то будет полезно.
<?php function get_page_ID_by_slug( $slug ) { $page = get_page_by_path( $slug ); if ( $page ) { return (int) $page->ID; } else { return null; } } ?>
I hope this suggestion is helpful for someone.
Я новичок в wordpress,и мне было интересно,могу ли я получить
page id
с егоslug
.Возможно ли это,дайте мне знать.