2017-03-27 23 views
0

functions.phpに書き換えルールがあり、うまくいきます。WordPress特定のスラッグを除外するための書き換えルール

function custom_offers_rewrite() { 
    add_rewrite_rule('^offers/([a-z-_]+)/?', 'index.php?page_id=1948&offer_restaurant=$matches[1]', 'top'); 
} 

これは/offers/my-custom-pathのようなものを探し、特定のページテンプレート/ ID(page_idの= 1948)にロードします。このテンプレートは、いくつかのカスタムなものを表示し、私たちはすべて良いです。

URLパスにリテラルページ/offers/allがありますが、これを書き換えルールから除外したいと思います。

これはまったく可能ですか?

つまり、/offers/allにヒットした場合は、ルールを無視して通常どおりに実行します。それ以外の場合は、現在動作しているルールを実行します。

私はそれが正規表現にいくつかの調整が必要だと思うが、私はほとんどパターンマッチングに良いとは思えない。

ヘルプとアドバイスをいただければ幸いです。どうもありがとう!

答えて

0

さて、私はそれを最終的に考え出しました。

/offers/allを無視するが、他のすべてで動作するコードの作業:正規表現に(?!all)の追加され、

function custom_offers_rewrite() { 
    add_rewrite_rule('^offers/(?!all)([a-z-_]+)/?', 'index.php?page_id=1948&offer_restaurant=$matches[1]', 'top'); 
} 

重要な部分。

これは誰かを助けるために管理します。

重要:パーマリンクをWordPressに保存して、書き換えキャッシュをフラッシュしてください。

関連する問題