[WordPress]ルーティング

テーマのfunctions.phpに追記する

/**
 * ルーティング(リライトルールの追加)
 * ここの設定を反映させるには下記の操作が必要
 * 管理画面にて「設定」->「パーマリンク設定」->変更せずに「変更を保存」
 * add_rewrite_ruleの第三引数の説明は下記
 * 'top' または 'bottom'。'top' の場合、ルールは WordPressのすべての既存ルールに優先する。'bottom' の場合、ルールはすべての既存ルールがマッチしない場合に検査される。
 */
function add_user_rewrite_rules() {
    add_rewrite_rule('^hoge/?$', 'index.php?c_controller=hoge&c_method=', 'top');
    add_rewrite_rule('^hoge/([^/]*)/?$', 'index.php?c_controller=hoge&c_method=$matches[1]', 'top');
}
add_action('init', 'add_user_rewrite_rules');

/**
 * ルーティング(リライトルールの追加)関連追加処理
 * c_type,c_actionをパブリッククエリ変数として登録
 * get_query_var('c_controller')で取得
 */
function add_user_routes_query_vars($query_vars){
    $query_vars[] = 'c_controller';
    $query_vars[] = 'c_method';
    return $query_vars;
}
add_filter('query_vars','add_user_routes_query_vars');