【WordPressの投稿や固定ページのURL(パーマリンク)からID(数字)のみ取得する方法】

ところで、私の書いた記事で「【Googleアナリティクスapiなどを使ってデータを取得する際に表示されるエラー「Error=BadAuthentication Info=InvalidSecondFactor」の対処方法】」があります。

この記事のURL(パーマリンク)は、「https://www.imamura.biz/blog/google/13561」です。(パーマリンクは、使用している「WordPressの管理画面→設定→パーマリンク設定」によって表示はいろいろ変わると思います。私の場合は、「/%category%/%post_id%」と設定していますんで、URLを見ればIDはすぐわかっちゃいますね)

それで、このID「13561」を取得して、別のデータをごにょごにょするために使いたい。そういう場合は「ID」だけ取得することになると思います。そんな時には、便利な関数「url_to_postid」を使えば割とラクに取得できます。

以下に「url_to_postid」について書きましたので、興味がありましたらご参考ください。

関数「url to postid」を使う

英語版Codexで使い方が解説されています。助かります~。

書き方

<?php $postid = url_to_postid( $url ); ?>

パラメータ

$url → パーマリンクを入れる(デフォルトでは未設定)

注意点

Note that this function does not return the post id for custom post types

和訳は苦手なんですが・・・カスタムポストタイプのIDは返さないとのことです。なるほどです。

というわけで、以上を前提としてサンプルを書きましたので、ご覧ください~。

サンプル:今表示している記事のIDを取得する

<?php $postid = url_to_postid( get_permalink() ); ?>

やっていること

「get_permalink()」は現在表示しているページのパーマリンクを取得するテンプレートタグです。なので、単純に「url_to_postid()」の「()内」に入れてあげればいいですね。変数「$postid」にはIDが格納されます。

IDを利用する場面は私は結構あります

私的にはとても大事な処理でしたので、この関数を知った時は「おお~」って感じで、とても助かりました。 WordPressは投稿や固定ページのIDを利用していろいろできることが多いので、このIDのみを取得する方法は覚えておいても損はないな~と思いました。

何かのご参考となりましたら幸いです。

著者:bouya Imamura