プラグインに書き換えルールを追加し、コードで配布する必要があります。WordPress ルート フォルダーの .htaccess にルールを配置すると、すべて正常に動作しますが、ルールと共にプラグインを配布する必要があります。
プラグイン フォルダー内に .htaccess を配置してadd_rewrite_rule関数を使用しようとしましたが、どちらも機能しません。
ここでは、WordPress ルート フォルダーでは正しく機能するが、プラグイン フォルダーでは機能しない .htaccess コードを示します。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule my-plugin/pages/tp(.*)\.php$ wp-content/plugins/my-plugin/pages/request.php?pid=$1
</IfModule>
プラグインで次のコードを試してみましたが、どちらも機能しません。
add_filter( 'query_vars', 'add_query_vars' );
function add_query_vars( $query_vars )
{
$query_vars[] = 'pid';
return $query_vars;
}
add_action( 'init', 'add_init' );
function add_init()
{
$plugin_url = 'the-path-to-my-plugin-folder';
add_rewrite_rule('my-plugin/pages/tp(.*)\.php'
, $plugin_url . 'pages/request.php?pid=$matches[1]','top');
global $wp_rewrite;
$wp_rewrite->flush_rewrite_rules(); // I know this should be called only one time, but I put it here just to keep simple the sample code
}
しかし、URLが見つからないというエラーが常に発生します。私が間違っていることは何ですか?どうすれば必要なことを行うことができますか? 同様の質問を検索しましたが、問題を解決するものはありません。
私のプラグインのフォルダ構造は次のとおりです。
メインフォルダー: /wp-content/plugins/my-plugin ------ /pages (サブフォルダー) --------------/request.php (リクエストを受け取るスクリプト)