web-dev-qa-db-ja.com

URLでオブジェクトIDを取得する

私はURL(URL /sample-page/など)を持っています、対応するオブジェクトIDが必要です。どうやって?

2
porton

この機能を試してください。

url_to_postid( $url );

WordPressコーデックス はあなたの友達です。素早いGoogle検索で答えが得られたかもしれません。

5
shabushabu

他の答えは有効ですが、別の(通常は未知ですが非常に便利な)メソッドを追加するためのものです:get_page_by_path();

$page =get_page_by_path('parent-page/sub-page');

PathパラメータはSLUGをパラメータとして取ることさえできることに注意する価値があります。例:

$page = get_page_by_path('your-slug-of-page-to-exclude');
wp_list_pages('exclude='.$page->ID.'&title_li=');

それならあなたは$page->IDを使うことができます

4
krembo99

get_queried_object_id() には WP_Query::get_queried_object_id() マッパーを使用してください。

url_to_postid()とは異なり、URLを知る必要はなく、分類法やカスタム投稿タイプでも機能します(これが正しいことを覚えていれば)。

使用例については、my 現在の用語のIDを取得 への回答を参照してください。

3
fuxia

私は同じ問題を抱えていましたが、カスタムの投稿タイプだけを使っていました。残念ながらurl_to_postid( $url );はカスタム型では動作しないので、この関数を使うことになりました bwp_url_to_postid($ url) 。この関数はカスタム投稿タイプを扱うためにurl_to_postid( $url );を拡張します。

URLのパーマリンクがある場合は、

<?php $postLink = get_permalink($post_object->ID); ?>
<?php $postId = bwp_url_to_postid($link); ?>
<?php echo $postId ?>
0
elbatron