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

概要

the_permalinkは、WordPressにおいてパーマリンクを表示するためのフィルタです。このフィルタは、記事やページのURLを取得する際に、そのURLを変更したりカスタマイズしたりするために使用されます。具体的には、以下のような機能を実装する際に役立ちます。

  1. URLの一部を置換する
  2. URLに特定のクエリパラメータを追加する
  3. 特定の条件に基づいてURLを変更する
  4. URLのプロトコル(http/https)を変更する
  5. カスタムエンドポイントを追加する
  6. 外部サイトへのリダイレクトURLを設定する
  7. SEOのためにURLを整形する
  8. カスタム投稿タイプのURLを変更する

構文

add_filter('the_permalink', 'your_custom_function');

パラメータ

  • $permalink:フィルタ対象の元のパーマリンク(文字列)。
  • $post:現在の投稿オブジェクト(WP_Post)。

戻り値

  • 変更されたパーマリンク(文字列)。

関連する関数

the_permalink

使用可能なバージョン

このフィルタはWordPressのバージョン1.5以降に利用可能です。

コアファイルのパス

wp-includes/link-template.php

サンプルコード

サンプルコード1: プロトコルをhttpsに変更

add_filter('the_permalink', 'force_https_permalink');

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

このコードは、すべてのパーマリンクをhttpからhttpsに変更します。別のプロトコルを強制したい場合などに使用します。

サンプルコード2: 特定のクエリパラメータを追加

add_filter('the_permalink', 'add_custom_query_param');

function add_custom_query_param($permalink) {
    return add_query_arg('ref', 'my_custom_ref', $permalink);
}

このコードは、全てのパーマリンクに?ref=my_custom_refというクエリパラメータを追加します。アフィリエイトリンクなどで利用されます。

サンプルコード3: 投稿タイプによってURLをカスタマイズ

add_filter('the_permalink', 'custom_post_type_permalink');

function custom_post_type_permalink($permalink) {
    if (is_singular('my_custom_post_type')) {
        return str_replace('my_custom_post_type', 'custom', $permalink);
    }
    return $permalink;
}

このコードは、特定のカスタム投稿タイプのパーマリンクの一部を変更します。特定のURL形式が必要な場合に便利です。

サンプルコード4: 投稿のみの固定URLに変更

add_filter('the_permalink', 'change_permalink_for_post');

function change_permalink_for_post($permalink) {
    if (is_single()) {
        return '/fixed-url/' . get_post_field('post_name', get_post()) . '/';
    }
    return $permalink;
}

このコードは、投稿のパーマリンクを’/fixed-url/[スラッグ]’の形式に変更します。固定された形式で訪問者に提供したいときに使います。

サンプルコード5: リダイレクトURLを指定

add_filter('the_permalink', 'redirect_old_permalink');

function redirect_old_permalink($permalink) {
    if (strpos($permalink, 'old-page') !== false) {
        return 'http://example.com/new-page/';
    }
    return $permalink;
}

このコードは、特定の古いURLを新しいURLにリダイレクトします。移行作業で古いURLが含まれる場合に役立ちます。

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

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

the_permalinkフィルタは、これらのアクションフックの一部で使用されていますが、その他のアクションにおいては使用例がありません。

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


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