wp_get_shortlink()

wp_get_shortlink()
目次

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 の場合は現在の投稿ID0
$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 開発で活用してみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

初めてホームページを作成したのは1996年。
2000年よりフリーランスで主に中小企業、学校、各種公的団体、個人事業主のWordPressを活用したホームページ制作を行っています。WordPressテーマはそれぞれのクライアントに合わせて作成しています。
WordPressを活用したサイト運営のための情報発信をしていきます。

目次