ワードプレスのwp_shortlink_wp_headアクションの使用方法・解説

概要

wp_shortlink_wp_headアクションは、短縮URLのlinkタグを表示するために使用されるフックです。このアクションは、ページのheadセクションに短縮URLを追加します。主に以下のような機能を実装する際によく使われます:

  1. SEO対策の一環として短縮URLを生成する
  2. ソーシャルメディアへのシェアリンクの最適化
  3. ページ間のリダイレクト情報を提供する
  4. 外部サービスからの短縮URLを表示する
  5. ユーザーエクスペリエンスを向上させるためのリンク生成
  6. ショートリンクを使用することでトラッキングを容易にする
  7. リンクの整理や短縮の一貫性を持たせる
  8. ウェブサイトのパフォーマンスを向上させる

構文

add_action('wp_head', 'wp_shortlink_wp_head');

パラメータ

このアクションには特別なパラメータはありません。

戻り値

このアクションは何も値を戻しません。主に副作用(headへの出力)を持つことが特徴です。

関連する関数

wp_shortlink_wp_head

バージョン情報

このアクションは、WordPress 3.0以降で使用可能です。

コアファイルのパス

wp-includes/link-template.php

この関数のアクションでの使用可能性

アクション名 使用例
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

サンプルコード

サンプル1: シンプルなリンクタグの追加

add_action('wp_head', function() {
    if ( is_single() ) {
        echo '<link rel="shortlink" href="'.get_shortlink().'">';
    }
});

このコードは、単一の投稿ページに短縮URLのlinkタグを表示します。

サンプル2: カスタム投稿タイプのサポート

add_action('wp_head', function() {
    if ('custom_post_type' == get_post_type()) {
        echo '<link rel="shortlink" href="'.get_shortlink().'">';
    }
});

このコードは、特定のカスタム投稿タイプに対して短縮URLのlinkタグを出力します。

サンプル3: 管理者にのみ表示させる

add_action('wp_head', function() {
    if (is_single() && current_user_can('administrator')) {
        echo '<link rel="shortlink" href="'.get_shortlink().'">';
    }
});

このコードは、管理者だけが投稿に対して短縮URLのlinkタグを表示できます。

サンプル4: リダイレクト対応の短縮URL

add_action('wp_head', function() {
    if (is_single()) {
        $shortlink = home_url('/?p=' . get_the_ID());
        echo '<link rel="shortlink" href="'.$shortlink.'">';
    }
});

このコードは、ページのIDを使って自作の短縮URLを生成し、headセクションにリンクタグを追加します。

サンプル5: 短縮URLの無効化

add_action('wp_head', 'remove_shortlink', 1);
function remove_shortlink() {
    remove_action('wp_head', 'wp_shortlink_wp_head', 10);
}

このコードは、短縮URLのlinkタグをheadセクションから削除します。

以上のサンプルコードは著作権フリーのもので、自由に使用できます。

この関数について質問する


上の計算式の答えを入力してください