1

ワードプレスで偽のページを作成しました。次のコードでキャッチします。

if ($_GET['fake_page'] == "myfakepage") {
  add_filter('the_title','plugin_myown_title');
  add_filter('the_content','plugin_myown_content');
  add_action('template_redirect', 'plugin_myown_template');
}

これは正しく動作します。今私がやりたいのは、このようなこのURLを書き換えることです

my_site?fake_page=myfakepage

my_site/product/myfakepage

ここで、product は wordpress ダッシュボードから作成された既存のページです。

私はこのガイドに従いました:

http://statichtml.com/2010/mod-rewrite-baseon-on-query-string.html

そして、このルールを定義しました:

RewriteEngine On
RewriteCond %{QUERY_STRING}     ^fake_page=(.*)$    [NC]
RewriteRule ^/$       my_site/product/%1      [NC,L,R=301]

しかし、私が得るのは

my_site/product?fake_page=myfakepage

問題はどこだ?さらに、ブラウザに入力するかどうかを知りたい:

my_site/product/myfakepage

私はワードプレスがそれを次のように扱うようにすることができました

 my_site?fake_page=myfakepage

リダイレクトなし。ありがとう!

4

1 に答える 1

1

functions.php から次のコードを試してください。

add_action( 'generate_rewrite_rules', 'my_rewrite_rules' );
function my_rewrite_rules( $wp_rewrite )
{
    $wp_rewrite->rules = array(
        'product/myfakepage/?$' => $wp_rewrite->index . '?fake_page=myfakepage',
    ) + $wp_rewrite->rules;
}

注: カスタム .htaccess は必要ありません。ところで: .htaccess を直接変更しないでください。WordPress には、カスタム ルールを適用できる広範なRewrite APIがあります。

于 2013-02-02T19:13:17.207 に答える