WordPressで記事の情報を操作する際、投稿ID(Post ID)は非常に重要な役割を果たします。たとえばカスタムフィールドの取得や投稿の絞り込み、投稿単位の処理を行う場面で頻繁に使われます。
この記事では、WordPressで記事IDを取得するさまざまな方法について、使用シーン別に解説します。
現在の投稿のIDを取得する
テンプレートファイルやループ内で使用する場合は、get_the_ID()
関数が便利です。
if (have_posts()) {
while (have_posts()) {
the_post();
$post_id = get_the_ID();
echo '投稿ID:' . $post_id;
}
}
または、投稿IDをHTMLの属性などに埋め込む用途でも使用できます。
投稿オブジェクトからIDを取得する
$post
グローバル変数から直接取得する方法もあります。
global $post;
echo $post->ID;
こちらはループ外や特定の投稿情報を取得した直後など、投稿オブジェクトがある場合に使います。
投稿スラッグやタイトルからIDを取得する
投稿スラッグ(post_name)をキーにIDを取得する場合は、以下のようにします。
$post = get_page_by_path('sample-post', OBJECT, 'post');
if ($post) {
echo $post->ID;
}
タイトルを使う場合は `get_page_by_title()` を使いますが、スラッグより曖昧になりやすいため注意が必要です。
特定のURLから投稿IDを取得する
URLから投稿IDを抽出する場合、投稿のパーマリンク構造によっては難しいこともありますが、url_to_postid()
関数を使うと簡単です。
$url = 'https://example.com/sample-post/';
$post_id = url_to_postid($url);
echo $post_id;
管理画面で記事IDを確認する方法
WordPress管理画面の投稿一覧ページで、記事タイトルにマウスを合わせると表示されるリンクに「post=○○」と含まれている部分が投稿IDです。
もしくはプラグイン「Reveal IDs」などを使うと、ID列を明示的に表示できます。
まとめ
WordPressでは、テンプレート内・オブジェクトから・スラッグやURLからなど、さまざまな方法で投稿IDを取得することができます。使用する状況に応じて適切な手法を選ぶことで、より柔軟なカスタマイズが可能になります。