wp_shortlink_wp_head()

wp_shortlink_wp_head()
目次

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()処理の流れ

  1. 現在の投稿IDを取得
    • グローバル変数$postから投稿IDを取る
  2. wp_get_shortlink()を呼ぶ
    • 投稿IDから短縮URLを取得する
  3. <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()で削除
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

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

目次