概要
url_to_postid
関数は、指定されたURLに基づいて投稿記事のIDを取得します。この関数は、URLから投稿を特定したい場合に非常に便利です。たとえば、外部リンクの解析や、URLから関連する投稿を取得する際に役立ちます。この関数を使用するシナリオには、以下のようなものがあります。
- 外部システムからのデータインポート時にID取得。
- URLを基にユーザーが特定の投稿を見つけやすくする。
- リダイレクト処理時の投稿ID取得。
- 投稿のリストを動的に生成するためのID取得。
- コメントやメタデータを投稿に関連付ける際のID取得。
- 投稿を特定した上でのカスタムクエリ実行。
- SEO対策としてURLを解析して投稿情報を取得。
- プラグイン内での投稿参照時に利用。
構文
$post_id = url_to_postid($url);
パラメータ
$url
(string): 投稿のURL。
戻り値
- (int): 指定されたURLに対応する投稿のID。投稿が見つからなかった場合は0を返します。
関連する関数
使用可能なバージョン
url_to_postid
関数は、WordPressバージョン3.0.0以降で利用可能です。
コアファイルのパス
url_to_postid
関数は、WordPressのコアファイル内のwp-includes/rewrite.php
に含まれています。
サンプルコード
以下に、url_to_postid
関数のサンプルコードを5点示します。
サンプルコード1: 基本的な使用例
$url = 'https://example.com/sample-post/';
$post_id = url_to_postid($url);
echo 'The post ID is: ' . $post_id;
このコードは、指定されたURLから関連する投稿のIDを取得し、出力します。
サンプルコード2: 投稿を取得して表示
$url = 'https://example.com/sample-post/';
$post_id = url_to_postid($url);
if ($post_id) {
$post = get_post($post_id);
echo '<h1>' . $post->post_title . '</h1>';
}
このコードは、指定されたURLから投稿のIDを取得し、その投稿タイトルを表示します。
サンプルコード3: エラーハンドリング
$url = 'https://example.com/non-existing-post/';
$post_id = url_to_postid($url);
if ($post_id == 0) {
echo 'No post found for this URL.';
} else {
echo 'Found post ID: ' . $post_id;
}
このコードは、指定されたURLに関連する投稿が見つかった場合、IDを表示し、見つからない場合はエラーメッセージを表示します。
サンプルコード4: 複数のURLを処理
$urls = [
'https://example.com/post-one/',
'https://example.com/post-two/',
];
foreach ($urls as $url) {
$post_id = url_to_postid($url);
echo $url . ' has post ID: ' . $post_id . '<br>';
}
このコードは、複数のURLを処理し、それぞれの投稿IDを表示します。
サンプルコード5: リダイレクト用に使用
$url = 'https://example.com/old-url/';
$post_id = url_to_postid($url);
if ($post_id) {
wp_redirect(get_permalink($post_id));
exit;
}
このコードは、指定されたURLの投稿IDを取得し、その投稿のパーマリンクにリダイレクトします。
この関数のアクションでの使用可能性
アクション名 | 使用可能性 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | 〇 |
template_redirect | |
get_header | |
wp_head |
url_to_postid
関数は、特定のWordPressバージョンで非推奨または削除されていません。