add_permastruct()


WordPress関数add_permastruct()は、カスタムのパーマリンク構造を定義するために使用されます。この関数は、特定の投稿タイプやタクソノミーに独自のURL構造を割り当てる場合に役立ちます。

構文

add_permastruct( string $name, string $struct, array $args = array() );

引数の説明:

  • $name (string) — パーマリンク構造の名前。例えば、カスタム投稿タイプ名やタクソノミー名。
  • $struct (string) — 使用するパーマリンク構造。例えば、'/%category%/%postname%/'
  • $args (array) — オプションの引数。以下のキーを含むことができます。
    • 'with_front' (bool) — パーマリンク構造の先頭にフロントベースを付けるかどうか。
    • 'ep_mask' (int) — 終端ポイントマスクを指定。
    • 'paged' (bool) — ページ分割をサポートするかどうか。

例 1: カスタム投稿タイプのパーマリンク構造を追加

カスタム投稿タイプ'my_post_type'のパーマリンクを定義する例です。

add_permastruct( 'my_post_type', '/my-post/%post_id%/', array( 'with_front' => false ) );

例 2: タクソノミーのパーマリンク構造を定義

カスタムタクソノミー'my_taxonomy'のパーマリンク構造を設定する例です。

add_permastruct( 'my_taxonomy', '/taxonomy/%term%/', array( 'ep_mask' => EP_ALL ) );

例 3: カスタムパーマリンクのフロントベースを無効化

フロントベースを削除して、クリーンなパーマリンクを作成します。

add_permastruct( 'custom_base', '/custom/%postname%/', array( 'with_front' => false ) );

例 4: ページ分割をサポートする構造

投稿やタクソノミーのページ分割をサポートするパーマリンク構造の例です。

add_permastruct( 'paged_example', '/example/%postname%/page/%paged%/', array( 'paged' => true ) );

例 5: カスタムリライトルールとの組み合わせ

カスタムリライトルールを定義して特定のURL構造を実現します。

add_permastruct( 'custom_rewrite', '/rewrite/%post_id%/', array( 'with_front' => false ) );
add_rewrite_rule( '^rewrite/([0-9]+)/?', 'index.php?p=$matches[1]', 'top' );

注意事項

この関数を使用する際は、リライトルールの再生成が必要になる場合があります。変更後にflush_rewrite_rules()を使用してリライトルールをクリアしてください。


関連機能: