2016-09-30 4 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- name'이'project'에 저장되어 있거나 다른 변수가 필요합니까? – bswatson

+0

안녕하세요, 답장을 보내 주셔서 감사합니다. 그들은 같은'팔북'과'프로젝트'에 repsectively 저장해야합니다. –