[WordPress] ワードプレスの 1 つのページに複数の url をマスキング

スポンサーリンク

Question

私はワードプレス (4.0) のサイトや複数の Url が動的に作成される状況があります。このようなもの:

/api-page/111/222/
/api-page/aaa/bbb/

にそれらをポイントする必要があります:

/api-page/?param1=111&param2=222
/api-page/?param1=aaa&param2=bbb

のみ api-「ページ」が存在するため。「Api ページ”ショート params を処理するコードがある

、Htaccess ファイルの Url にリダイレクトする方法を知っているが、彼らが滞在する url を必要があります

Htaccess ファイルでこのラインを含む url をマスクする管理:

RewriteRule ^api-page/(.+)/(.+)/$ /api-page/?param1=$1&param2=$2 [L]

がワードプレスは 404 エラーをスローします

この方法?

答え

私は解決策を見つけた。Htaccess を使用していないソリューションです。テーマの function.php ファイルにしたこのスニペット:

function api_rw_rules() {    
    global $wp; 
    $wp->add_query_var('param1');   
    $wp->add_query_var('param2');
    add_rewrite_rule('api-page/(.+)/(.*)','index.php?pagename=api-page&param1=$matches[1]&param2=$matches[2]','top');
    global $wp_rewrite;
    $wp_rewrite->flush_rules();
}
add_action('init', 'api_rw_rules');

最後の 2 つの書き換えルールを設定した後、関数内の行を削除することができます

/*
global $wp_rewrite;
$wp_rewrite->flush_rules();
*/

このソリューションの唯一の欠点は、変数は $_GET に使用できません。彼らは get_query_var() で利用できる:

$param1 = get_query_var('param1');
$param2 = get_query_var('param2');

http://stackoverflow.com/questions/27112756/wordpress-masking-multiple-urls-to-the-single-page

スポンサーリンク

Leave a Reply