
wp_shortlink_wp_head()とは?
wp_shortlink_wp_head()
は
記事や固定ページの「短縮URL(shortlink)」をHTMLの<head>
タグに出力する関数
です。
出力されるHTMLタグは次のようになります。
<link rel="shortlink" href="https://example.com/?p=123" />
このタグは
- 検索エンジン
- SNS
- クローラー
に対して「このページの短縮URLはこれですよ」と伝えるメタデータです。
「短縮URL」とは?
短縮URLは、WordPressが自動生成するシンプルな形式のURLです。
通常のURL
https://example.com/2024/07/03/sample-post/
短縮URL(shortlink)
https://example.com/?p=123
短縮URLは、特に文字数制限が厳しいサービス(旧Twitterなど)向けに使われてきました。
どこで使われる?
WordPressコアでは、wp_head
フックにフックされているので、テーマでwp_head()
を呼ぶと自動的に出力されます。
テーマのheader.php
にこの記述があればOKです。
<?php wp_head(); ?>
どうやって呼ばれる?
WordPressの初期化プロセスで以下のように登録されます。
add_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 );
つまり、ページが生成されるたびにWordPressが自動で呼んでくれます。
実際に出力されるHTML
記事ページで表示すると次のようになります。
<link rel="shortlink" href="https://example.com/?p=123" />
wp_shortlink_wp_head()関数の書式
wp_shortlink_wp_head()
- 引数なし
- 戻り値なし(直接echoする)
wp_shortlink_wp_head()処理の流れ
- 現在の投稿IDを取得
- グローバル変数
$post
から投稿IDを取る
- グローバル変数
wp_get_shortlink()
を呼ぶ- 投稿IDから短縮URLを取得する
<link>
タグをecho
wp_get_shortlink()について
wp_shortlink_wp_head()
は内部で次を実行しています。
$shortlink = wp_get_shortlink();
wp_get_shortlink()
は以下のようにURLを返します。
https://example.com/?p=123
無効化する方法
「短縮URLは不要」という場合、wp_head
から削除できます。
functions.php
に以下を記述してください。
remove_action('wp_head', 'wp_shortlink_wp_head');
これでHTMLに出力されなくなります。
カスタマイズする方法
短縮URLを別のURLにしたい場合は、pre_get_shortlink
フィルターを使います。
例:独自の短縮URLを返す
add_filter('pre_get_shortlink', 'my_custom_shortlink', 10, 4);
function my_custom_shortlink($shortlink, $id, $context, $allow_slugs) {
return home_url('/short/' . $id);
}
出力例:
<link rel="shortlink" href="https://example.com/short/123" />
wp_shortlink_wp_head()とwp_shortlink_header()の違い
関数 | 出力先 | 使い方 |
---|---|---|
wp_shortlink_wp_head() | HTMLの<head> 内 | クローラー・SNSがHTMLを解析するときに利用 |
wp_shortlink_header() | HTTPレスポンスヘッダー | クローラーがHEADリクエストで利用 |
どちらも同じURLを出力しますが、出力場所が異なります。
出力確認方法
ブラウザの開発者ツールで「Elements(要素)」を開き、<head>
内に<link rel="shortlink">
が入っていることを確認できます。
なぜ必要なの?
短縮URLはSEOに直接影響は少ないですが、以下の場面で役立ちます。
- SNSにシェアする際のURL表示
- 外部クローラーがコンテンツを特定する
- サイト移行やパーマリンク変更後の参照維持
wp_shortlink_wp_head()よくある質問
- 短縮URLはSEOに影響する?
-
基本的には影響しません。ただし、一部のSNSやクローラーで「短縮URLがないとコンテンツを特定できない場合」があります。
- 短縮URLを出したくない
-
remove_action()
で簡単に停止できます。 - 投稿以外のページでは?
-
wp_get_shortlink()
がfalseを返すため、何も出力されません。
実用コードサンプル
1. 短縮URLをheadに表示
これはデフォルトの動作で自動的に出力されます。
<link rel="shortlink" href="https://example.com/?p=123" />
2. 無効化する
functions.php
に以下を追加。
remove_action('wp_head', 'wp_shortlink_wp_head');
3. 独自URLにする
add_filter('pre_get_shortlink', 'custom_shortlink', 10, 4);
function custom_shortlink($shortlink, $id, $context, $allow_slugs) {
return home_url('/s/' . $id);
}
まとめ
wp_shortlink_wp_head()
は短縮URLをHTML<head>
に出力する関数wp_get_shortlink()
でURLを取得して出力- テーマの
wp_head()
呼び出しで自動実行 - 無効化も簡単
- カスタマイズはフィルターで柔軟に対応
ポイント
- デフォルトで問題なければ放置でOK
- SNS・クローラー用に有用
- 不要なら
remove_action()
で削除