
wp_get_shortlink()とは?
wp_get_shortlink()
は、WordPress で投稿・固定ページ・カスタム投稿などの**ショートリンク(短縮URL)**を取得するための関数です。表示はせず、短縮URLを文字列として取得できるため、テンプレートタグ the_shortlink()
のように直接表示せず、任意の出力形式に組み込める柔軟性があります。
この解説では、wp_get_shortlink()
の使い方・引数・応用方法・カスタマイズ・関連関数との違いまで、初心者にも分かりやすく解説します。
wp_get_shortlink()の関数の基本構文
wp_get_shortlink( int $id = 0, string $context = 'post', bool $allow_slugs = true )
wp_get_shortlink()の引数の詳細
引数 | 説明 | デフォルト |
---|---|---|
$id | ショートリンクを取得したい投稿の ID。0 の場合は現在の投稿ID | 0 |
$context | 使用する文脈。通常は 'post' だが、 'query' , 'blog' なども使用可能 | 'post' |
$allow_slugs | スラッグベースのリンクを許可するか(将来的な拡張用) | true |
wp_get_shortlink()の戻り値
- 投稿のショートリンクURL(文字列)
- 投稿が存在しない、または不正な場合は
false
wp_get_shortlink()の基本的な使用例
<?php
$shortlink = wp_get_shortlink();
echo 'この投稿の短縮URL: ' . esc_url( $shortlink );
出力例:
この投稿の短縮URL: https://example.com/?p=123
※ the_shortlink()
はこの関数を内部的に使って表示しています。
wp_get_shortlink()のよく使うシチュエーション
A. シェアボタンに使う
$shortlink = wp_get_shortlink();
echo '<a href="https://twitter.com/share?url=' . urlencode($shortlink) . '">Twitterでシェア</a>';
B. メール送信用リンク生成
$shortlink = wp_get_shortlink();
$mail_body = "この投稿を見てください:" . $shortlink;
// mail()関数やプラグイン連携で使用
C. JSON API の出力に含める
$response = [
'title' => get_the_title(),
'shortlink' => wp_get_shortlink()
];
echo json_encode($response);
カスタム投稿タイプでも使える?
はい、wp_get_shortlink()
は投稿タイプを問わず使えます。ただし $context
が 'post'
固定だと、投稿IDが取得できるページでないと機能しません。
例:カスタム投稿タイプ「product」の詳細ページで使う
if ( is_singular('product') ) {
$link = wp_get_shortlink( get_the_ID(), 'post' );
echo '<p>製品リンク:' . esc_url($link) . '</p>';
}
フィルターフックで URL を上書きする
wp_get_shortlink()
は内部で get_shortlink
フィルターを通るため、外部の短縮URLサービスと連携したカスタマイズも可能です。
例:Bitly を模した短縮URLを出力
add_filter('get_shortlink', function($shortlink, $id, $context, $allow_slugs){
if ( $context === 'post' && $id ) {
return 'https://sho.rt/' . $id;
}
return $shortlink;
}, 10, 4);
このようにすると wp_get_shortlink(123)
の戻り値が https://sho.rt/123
になります。
the_shortlink() との違い
比較項目 | wp_get_shortlink() | the_shortlink() |
---|---|---|
表示 or 取得 | 戻り値(return) | 表示(echo) |
カスタマイズ性 | 高い | 限定的 |
使用目的 | 値を処理・加工して使う | HTML 出力のみ |
フィルター利用 | get_shortlink でURLを変更可能 | 内部で wp_get_shortlink() を使っている |
戻り値の仕組み
返ってくる短縮URLは WordPress の post_id
に基づいた構造です。
https://example.com/?p=123
このURLは WordPress の内部的なクエリパラメータによって、パーマリンク構造に関係なくページを表示することが可能です。
タイプ別の $context
パラメータの用途(応用編)
$context の値 | 用途・説明 |
---|---|
'post' | 通常の投稿や固定ページ(推奨) |
'query' | 現在のクエリに基づいたショートリンク(やや特殊) |
'blog' | ブログのホームページなどの固定リンク用(稀) |
ただし、'post'
以外は使う場面が限定されるため、通常は 'post'
を使っておけば問題ありません。
パーマリンクとの違い
項目 | ショートリンク | パーマリンク |
---|---|---|
構造 | ?p=123 形式 | SEO・URL設計重視の構造(例:/2025/07/slug/ ) |
SEO効果 | 低い(canonicalで正規化される) | 高い |
シェア用途 | 〇(文字数が短く便利) | △(長くなりがち) |
※ canonical タグで正規の URL が示されるため、ショートリンクが SEO に悪影響を及ぼすことは基本的にありません。
wp_get_shortlink()のまとめ
項目 | 内容 |
---|---|
関数名 | wp_get_shortlink() |
用途 | 投稿や固定ページの短縮URLを取得する |
引数 | 投稿ID・コンテキスト・スラッグ許可 |
戻り値 | 短縮URL文字列(例:https://example.com/?p=123 ) |
使用場面 | シェアボタン、API、メール送信、外部連携など |
カスタマイズ | get_shortlink フィルターで可能 |
関連関数 | the_shortlink() (表示専用) |
wp_get_shortlink()
は、単なる短縮URLの取得関数ですが、SNSシェア・メール・印刷物・APIレスポンスなど、URLを柔軟に扱いたい場面で非常に役立ちます。カスタム短縮URLサービスと組み合わせれば、より高度な運用も可能です。
パーマリンクだけでは補えない使い勝手の良さを持つ wp_get_shortlink()
を、ぜひあなたの WordPress 開発で活用してみてください。