【この際両方覚えておこう】WordPressで「URLから投稿・固定ページID」を取得する方法。逆もできる

「URLから投稿・固定ページIDを取得」する方法

WordPressでURLから投稿IDを取得するには「url_to_postid」という関数がとても便利です。例えば・・・

食用菊をもらったので、食べ方、栄養価、レシピなどを勉強しました

という投稿のURLは、

「https://www.imamura.biz/blog/etc/tasty/20977」

です。この投稿IDを取得したい。そこで「url_to_postid」関数を使って、

<?php echo url_to_postid('https://www.imamura.biz/blog/etc/tasty/20977'); ?>

と書けば、投稿ID「20977」が取得できます。(取得できない場合は「0」の値が返ってきます)

固定ページやカスタム投稿タイプなどのURLでもできる

続けてもうひとつ例を・・・私が自作したプラグイン専用ページは固定ページで作っています。URLは、

「https://www.imamura.biz/blog/newpost-catch」

なので、

<?php echo url_to_postid('https://www.imamura.biz/blog/newpost-catch'); ?>

と書けば、固定ページのIDが取得できます。カスタム投稿タイプでも同じ要領でIDを取得できます。便利!

逆もできる。「投稿・固定ページIDからURLを取得」する方法

get_permalink」という関数を使えば、「投稿・固定ページIDからURLを取得」できます。投稿ID「20977」を使って、

<?php echo get_permalink('20977'); ?>

と書くと、

「 https://www.imamura.biz/blog/etc/tasty/20977」

が取得できます。

ちょうど「url_to_postid」と逆のことができる、という事ですね。

両方覚えておくと便利

というわけで「URL」または「投稿・固定ページID」のどちらかさえわかっていれば「get_permalink」と「url_to_postid」を使うと片方を補うことができます。私はこの2つの関数をセットで覚えています。

著者:bouya Imamura