ワードプレスのget_the_permalinkフィルタの使用方法・解説

概要

get_the_permalinkフィルタは、現在の投稿情報のパーマリンクを取得する際に使用されるフィルタです。このフィルタを使用することで、パーマリンクをカスタマイズすることが可能になります。具体的には、次のような機能を実装する時に役立ちます。

  1. パーマリンクに特定のクエリパラメータを追加
  2. パーマリンクの形式を変更
  3. 外部サイトへのリダイレクトを簡単に設定
  4. 投稿ごとに異なるパーマリンク構造を適用
  5. SEO向けの特別なトラッキングリンクを生成
  6. 特定の条件に基づいてパーマリンクをフィルタリング
  7. URIを特定のフォーマットに整形
  8. ページタイトルや他のメタ情報を利用してパーマリンクを強化

構文

string get_the_permalink( int|WP_Post $id = null )

パラメータ

  • $id (int|WP_Post): 投稿のIDまたはWP_Postオブジェクト。指定しない場合は現在の投稿が使用される。

戻り値

  • 投稿のパーマリンクのURLを返します。

関連する関数

このフィルタを使用可能なバージョン

  • WordPress 2.5以降

コアファイルのパス

  • wp-includes/rewrite.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_filter('get_the_permalink', 'custom_permalink_function');

function custom_permalink_function($permalink) {
    return $permalink . '?utm_source=mywebsite';
}

このコードは、取得されたパーマリンクにUTMパラメータを追加しています。これにより、トラッキングが容易になります。

サンプルコード2

add_filter('get_the_permalink', 'change_permalink_structure');

function change_permalink_structure($permalink) {
    return str_replace('http:', 'https:', $permalink);
}

このコードは、すべてのパーマリンクのhttpをhttpsに変更します。サイトの安全性を向上させるために役立ちます。

サンプルコード3

add_filter('get_the_permalink', 'add_custom_slug');

function add_custom_slug($permalink) {
    if(is_single()) {
        $permalink = str_replace('sample-post', 'custom-slug', $permalink);
    }
    return $permalink;
}

このコードは、特定の投稿に対してパーマリンクスラッグをカスタマイズします。

サンプルコード4

add_filter('get_the_permalink', 'modify_permalink_for_category');

function modify_permalink_for_category($permalink) {
    if(in_category('news')) {
        $permalink .= 'news-update/';
    }
    return $permalink;
}

このコードは、特定のカテゴリに属する投稿のパーマリンクを変更し、末尾に「news-update」を追加します。

サンプルコード5

add_filter('get_the_permalink', 'redirect_old_permalink');

function redirect_old_permalink($permalink) {
    if($permalink === 'https://example.com/old-url/') {
        return 'https://example.com/new-url/';
    }
    return $permalink;
}

このコードは、古いパーマリンクを新しいURLにリダイレクトする機能を提供します。これにより、ユーザーが古いリンクを使用した際にも正しいページに導かれます。

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


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