2011-11-15 30 views
1

私はWordPress wp_rewriteとして追加したい.htaccess(それはうまく動作します)の書き換えルールを持っています - 主に移植性とユーザーの利便性のために....htaccessをWP_Rewriteの正規表現パターン

$newrules = array('^/services/rest/(.*)' => mAPI_PLUGIN_URL.'/socket.php?action=$matches[1]'); 

任意の提案をどのように解決するか、どのようにそれを改善するために:正規表現パターンは...

RewriteCond %{REQUEST_URI} ^/services/rest/(.*)$ 
RewriteRule ^(.*)/(.*)/(.*)$ wp-content/plugins/some_plugin/api.php?action=$3 [L,NC] 

私はこのようなルックスについてを必要とするような構文を見なければなりませんか?私の場合、それは私が個人的な使用のために開発したプラグインのために良い取り組んでいる

add_action('init', 'add_rewrite_rule'); 
add_filter('query_vars', 'query_vars'); 
add_filter('wp_head', 'rooter'); 

function add_rewrite_rule() 
{ 
    add_rewrite_rule('services/rest/(.*)', 'index.php?my_action=$matches[1]', 'top'); 
} 

function query_vars($query_vars) 
{ 
    $query_vars[] = 'my_action'; 
    return $query_vars; 
} 

function rooter() 
{   
    if(get_query_var('my_action')) 
    { 
     // Do your tasks here 
    } 
} 

+0

正常に動作していると言いますが、問題は何ですか?あなたの質問を明確にしてください。 –

+0

.htaccessは正常に動作しています(1番目のコードスニペット) - WPリライト構文(2番目のコードスニペット)を参照しています:http://codex.wordpress.org/Class_Reference/WP_Rewrite –

答えて

2

は、スクリプト/テーマで次のコードを追加します。

+1

結局のところ、これはおそらく設計によっても不可能であるということです:http://wordpress.stackexchange.com/questions/30386/where-do-i-use-add-rewrite-rule ... - index.phpを介して書き込みます(基本的にexlludedのパスとその最後の部分をクエリパラメータとして必要とします)。 –

+0

WordPressはシングルエントリーポイントアプリケーションなので、index.phpを使用する必要があります。 ルータ内から、実行したいファイルをロードし、変数に渡してすべての操作を実行できます。 最終的に、ホームページを表示しないように、ordeerで実行したいスクリプトにdie()を追加することができます。また、そのファイルで好きなことをすることができます。私たちはあなた自身のHTMLなどを追加します –

+0

私はあなたが何を意味しているのか理解していますが、この場合はWPのルータを使用するのは本当に進歩的ではありません。エンドスクリプト(パフォーマンス)。それが "ユーザーフレンドリー"ではないとしても、私は.htaccess ...に固執しますが、置き換えられた.htaccessファイルをインストールルーチンに追加することはできます。 –