2016-09-30 2 views
0

Я добавляю rewrite_rules для своего пользовательского проекта.WordPress add_rewrite_rule 404 error

Я смог заставить их работать до некоторой степени, но с некоторыми трудностями.

Вот что я испытал до сих пор

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 (Эти страницы, чтобы показать ни одного альбома)

Но это дает мне ошибку 404 в mysite.com/gallery/my-project-name (Эти страницы, чтобы показать все альбомы, которые проект является родителем)

Любая подсказка почему?

ответ

0

В соответствии с вашим правилом перезаписи для использования правила перезаписи требуются как раздел, используемый для проекта, так и альбом. Если вы просто немного изменить правило, это будет соответствовать тому, что вы ищете:

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- имя 'хранится в' project' или должна быть другая переменная? – bswatson

+0

Привет, спасибо за ваш ответ. Они должны храниться в тех же «palbum» и «project» повторно. –

Смежные вопросы