ページスラッグを使用してページのページIDを取得する方法
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/-
必要な子ページのIDの場合はどうなりますか?What if it's a child page's id I want?
- 0
- 2013-06-13
- freaky
-
@freakyこの関数は、親スラッグではなく、ページスラッグのみを取ります.ナメクジはユニークなので、常に1ページしか表示されません.@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_slug`ではなく `post_name`フィールドを内部的に使用します.Just to clarify, `get_page_by_path` uses the `post_name` field internally, not `post_slug`.
- 0
- 2018-04-09
- colefner
-
明確にするために、これはページ名ではなくページパスを使用しますよね?次に、「About us」という名前のページでは、引数は「about-us」である必要があります.スラッシュの先頭または末尾がありませんか?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質問は、ページオブジェクトではなく、IDを返したいためです.Because the OP question wants to return ID, not the page object.
- 0
- 2019-10-16
- user1158023
-
- 2013-06-13
このフォーラムではすでに質問と回答があります.そこから同じコードを貼り付けています. この関数を使用してページ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; }
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
ここには、過度に複雑に見える、またはページ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
その他
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
WordPressv1.0.0以降に url_to_postid 関数があります:)このタスクはこの関数を使用することで最も簡単に実行できます.
ページがトップレベルのページである場合、スラッグのみを指定する必要があります.
例:
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.
ワードプレスはかなり新しいので、
page id
でslug
を取得できるかどうか疑問に思っていました.可能ですか?教えてください.