質問: wordpressはwoocommerceのショップページにどのようにリダイレクトしますか? 私はwoocommerce用のプラグインを作成しています、それはこのhttp://domain/wp/shop/?param=valueのようなショップページのurlにパラメータを必要とします。ショップページをフロントページに設定するまではうまくいきました。http://domain/wpにアクセスするとショップページが表示されますが、パラメータ(http://domain/wp/?param=value)でアクセスするとブログのインデックスページが表示されます。だから、私は正確にwoocommerceのショップページにurlをリダイレクトするwordpressのコードのどこに尋ねたいですか?だから私はリダイレクトの振る舞いや何か他のものを変更することができるかもしれません。
回答: 書き換えルールを追加して、同じ機能を維持しながらurlの外観を改善できます。例として:add_action('init', 'custom_shop_param'); function custom_shop_param() { add_rewrite_tag('%param%','([^&]+)'); add_rewrite_rule('^shop/([^/]+)/?$','index.php?page=shop&param=$matches[1]','top'); } http://site/wp/shop/{somevalue}にアクセスすると、urlの/shop/部分を進める値が照合され、add_rewrite_tagの使用を通じて登録されているクエリ変数paramに保存されます。 $matches[1]変数は、式の最初に一致したグループの正規表現の値を保持します。http://site/wp/shop/discountproductは、param=discountproductの一部としてquery_varsにアクセスすることでアクセスできます要求://somewhere in your code.... function parse_shop_request() { global $wp_query; if ( isset($wp_query->query_vars['param']) ) { //do something with $wp_query->query_vars['param'] } } get_query_var('param') を使用してクエリ変数を取得することもできます。http://domain/wp/shop/valueが衝突するか、そのurlの深さで製品またはカテゴリまたは他のページと衝突する可能性がある場合、書き換えルールをもう少し拡張できます。http://site/wp/shop/get/value add_action('init', 'custom_shop_param'); function custom_shop_param() { add_rewrite_tag('%param%','([^&]+)'); add_rewrite_rule('^shop/get/([^/]+)/?$','index.php?page=shop&param=$matches[1]','top'); } もちろん、/get/をあなたの言葉や文脈に合ったものに置き換えてください。あなたもすることができます:add_action('init', 'custom_shop_param'); function custom_shop_param() { add_rewrite_tag('%param%','([^&]+)'); add_rewrite_rule('^shop/?param=([^/]+)$','index.php?page=shop&param=$matches[1]','top'); } 便利なリンク: http://codex.wordpress.org/function_reference/get_query_var http://codex.wordpress.org/rewrite_api http://codex.wordpress.org/rewrite_api/add_rewrite_tag http://codex.wordpress.org/rewrite_api/add_rewrite_rule