概要
get_the_permalinkフィルタは、現在の投稿情報のパーマリンクを取得する際に使用されるフィルタです。このフィルタを使用することで、パーマリンクをカスタマイズすることが可能になります。具体的には、次のような機能を実装する時に役立ちます。
- パーマリンクに特定のクエリパラメータを追加
- パーマリンクの形式を変更
- 外部サイトへのリダイレクトを簡単に設定
- 投稿ごとに異なるパーマリンク構造を適用
- SEO向けの特別なトラッキングリンクを生成
- 特定の条件に基づいてパーマリンクをフィルタリング
- URIを特定のフォーマットに整形
- ページタイトルや他のメタ情報を利用してパーマリンクを強化
構文
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にリダイレクトする機能を提供します。これにより、ユーザーが古いリンクを使用した際にも正しいページに導かれます。