2016-09-30 10 views
0

私のカスタムプロジェクトにrewrite_rulesを追加しています。WordPress add_rewrite_rule 404エラー

私はそれらをある程度まで機能させることができましたが、いくつかの困難があります。

は、ここで私はこれまでここで

public function add_query_vars($vars) { 
    $vars[] = 'gallery'; 
    $vars[] = 'project'; 
    $vars[] = 'palbum'; 
    return $vars; 
} 
public function add_endpoint() { 
    add_rewrite_rule('^gallery/([^/]*)/([^/]*)?','index.php?gallery=true&project=$matches[1]&palbum=$matches[2]','top'); 
} 

プロジェクトを親とpalbumは、そのすべての子ですされて試してみたものです。

(これらのページは、シングル、アルバムを表示することです)mysite.com/gallery/my-project-name/my-album-name で正しく動作しているようだ。しかし、それは、(これらのページは、プロジェクトがの親であるすべてのアルバムを表示することです)mysite.com/gallery/my-project-name で私に404エラーが発生します

何か手掛かりがあるのはなぜですか?

答えて

0

書き換えルールに基づいて、書き換えルールを適用するには、プロジェクトとpalbumに使用されるセクションの両方が必要です。あなたはわずかルールを変更した場合、それはあなたが探しているものと一致します:あなたがチェックしたいのですが、他の反復に対して実行するテスト作成した

public function add_endpoint() { 
    /** 
    * 
    * Matches: 
    * http://example.com/gallery/my-project-name/my-album-name/ 
    * http://example.com/gallery/my-project-name/my-album-name 
    * http://example.com/gallery/my-project-name/ 
    * http://example.com/gallery/my-project-name 
    */ 
    add_rewrite_rule('^gallery/([^/]+)/?(.*?)/?$','index.php?gallery=true&project=$matches[1]&palbum=$matches[2]','top'); 
} 

からhttps://www.regex101.com/r/f54odP/1

+0

おかげで、それが働きました。どのようにこれらを一致させるための任意のアイデア? 'http:// example.com/gallery/my-project-name/my-album-parent/my-album-children' アルバムの親は何でも構いません。すなわち http:// example.com/gallery/my-project-name/my-album-parent/my-album-sub-parent/my-album-sub-sub-parent/my-album-chidren' –

+0

'my-album-parent/m y-album-sub-parent/m-y-album-sub-sub-pare nt/my-album-chidren'を' palbum'と 'my-project- name'は 'project'に格納されていますか、別の変数が必要ですか? – bswatson

+0

こんにちは、お返事ありがとうございます。彼らは同じ 'palbum'と' project'にrepsectively保存する必要があります。 –

関連する問題