こんな人におすすめ:
- WordPressで柔軟なURL設計を行いたい開発者
- サイトを効率的に管理したいWeb担当者
- プラグインやフレームワークに頼らない自作ルーティングに興味がある方
プロンプト例:
「WordPressで動的ルーティングを設定するための基本的なPHPコード例を教えてください。また、mod_rewriteの設定例とGutenbergとの連携方法も説明してください。」
プロンプト例の出力結果:
WordPressで動的ルーティングを行うには、functions.phpなどに以下のコードを追加できます。例えば、URLの一部を変数として扱う方法の一例です。さらに、.htaccess内のmod_rewrite設定により実体のないURLをindex.phpに渡し、ルーティングの制御をします。Gutenbergのコンテンツを取得する場合は、REST APIから投稿データを取得し、それぞれの投稿ごとに動的なルート(例:/blog/{id})を生成します。PHPのadd_rewrite_rule関数を利用したMVC風ルーティングの実装例もあります。
<?php
// 動的ルートを追加する例
function custom_rewrite_basic() {
add_rewrite_rule('^blog/([^/]*)/?','index.php?blog_slug=$matches[1]','top');
}
add_action('init', 'custom_rewrite_basic');
// クエリ変数を追加
function add_query_vars_filter( $vars ) {
$vars[] = 'blog_slug';
return $vars;
}
add_filter( 'query_vars', 'add_query_vars_filter' );
// .htaccessのmod_rewriteは以下のように設定されている必要があります
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Gutenbergの投稿コンテンツはREST APIから取得し、Next.jsなどのフレームワークで動的ルーティングと組み合わせて静的サイトを生成可能です。