概要
add_permastruct
関数は、ワードプレスにおける特定の投稿タイプのパーマリンク設定を追加するために使用されます。この関数を使用することで、URLの構造をカスタマイズし、SEOやユーザー体験を向上させることができます。一般的には、以下のような機能を実装する際によく使われます。
- カスタム投稿タイプのパーマリンクを設定
- 複雑なURL構造を持つウェブサイトの構築
- 投稿やページのURLをよりユーザーフレンドリーにする
- SEO対策の一環としてのパーマリンク設定
- 多言語サイトでの言語別のURL管理
- 会社や商品のブランド化に向けたURL調整
- 特定の条件に基づく動的なパーマリンク生成
- 他のプラグインやテーマとのインテグレーションに伴うリンク設定
構文
add_permastruct( $name, $structure, $ep_mask );
パラメータ
$name
(string) – パーマリンク構造の名前。通常はカスタム投稿タイプ名。$structure
(string) – パーマリンクの構造。例えば、'%post_id%'
や'%postname%'
など。$ep_mask
(int) – エンドポイントマスク。特定のエンドポイントの指定に使用。
戻り値
この関数は特に戻り値を返しません。
関連する関数
使用可能なバージョン
この関数は、WordPress 2.1.0 以降で使用できます。
コアファイルのパス
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: カスタム投稿タイプのパーマリンク設定
function my_custom_post_type() {
register_post_type('my_custom_post', array(
'public' => true,
'label' => 'My Custom Posts'
));
add_permastruct('my_custom_post', '/custom/%my_custom_post%/', false);
}
add_action('init', 'my_custom_post_type');
このサンプルコードでは、カスタム投稿タイプ「my_custom_post」とそのパーマリンク構造を設定しています。
サンプルコード 2: 複雑なURL構造の追加
add_action('init', function() {
add_permastruct('product', '/shop/%product%', false);
});
このコードは、特定のカスタム投稿タイプ「product」に対してウェブショップを示すパーマリンク構造を追加します。
サンプルコード 3: SEO対策のためのURL調整
function add_seo_permastruct() {
add_permastruct('article', '/news/%article%', false);
}
add_action('init', 'add_seo_permastruct');
SEO対策として、投稿タイプ「article」に対するパーマリンクを「/news/」というプレフィックスで設定しています。
サンプルコード 4: 多言語サイトでの使用例
function multilingual_permalink() {
add_permastruct('portfolio', '/ja/%portfolio%', false);
}
add_action('init', 'multilingual_permalink');
この例では、日本語のポートフォリオ投稿タイプに対して適切なパーマリンク構造を追加しています。
サンプルコード 5: 動的URLの生成
function dynamic_permalink() {
add_permastruct('event', '/events/%event_name%', false);
}
add_action('init', 'dynamic_permalink');
特定のイベントに基づく動的なパーマリンク「/events/」を生成するコードサンプルです。