Intereting Posts
Добавление кнопки в меню WordPress Кто использовать в textarea WordPress Как я могу показывать сообщения WordPress на основе автора? изменить значение по умолчанию HAVE_POSTS () Loop без вставки новой переменной (то есть $ loop-> HAVE_POSTS) Изменить положение метабокса в бэкэнде (программно) для конкретной роли Как добавить атрибут «data-» к тегу изображения выходного файла галереи Показать случайную запись на странице с постоянной позицией по URL-адресу Как избежать кэширования во время разработки? Закажите по Meta_key, но сначала конвертируйте пользовательскую дату в Ymd Пользовательская панель загрузки в строке меню Удалить «Проверить совместимость» в меню «Плагины» создание псевдостатической страницы Вывод данных на нескольких страницах на одной странице Регистрация методов класса как обратных вызовов Как ограничить доступ к конкретным страницам на внутреннем сервере?

WordPress add_rewrite_rule () не может посещать уровни нижнего уровня

У меня есть тип сообщения, называемый «магазин», а также добавленные переменные запроса и правило перезаписи.

// Adds query vars for shop post type function gtp_add_shop_query_vars( $vars ) { $vars[] = 'shop-category'; $vars[] = 'width'; $vars[] = 'height'; return $vars; } add_filter( 'query_vars', 'gtp_add_shop_query_vars' ); // Adds rewrite rules for shop post type function gtp_add_shop_rewrite_rules() { add_rewrite_rule( '^shop/([^/]*)/([^/]*)/([^/]*)$', 'index.php?shop-category=$matches[1]&width=$matches[2]&height=$matches[3]', 'top' ); } add_action('init', 'gtp_add_shop_rewrite_rules', 10, 0); 

С этими правилами я могу сейчас посетить:

https://www.example.com/shop/product/80cm/100cm/

Но если я хочу посетить:

  • https://www.example.com/shop/product/80cm/
  • https://www.example.com/shop/product/

regex больше не соответствует, и страница не будет найдена.

Что мне нужно сделать, чтобы иметь возможность вводить все уровни URL-адреса?

Я исправил свою проблему следующим образом:

 // Adds rewrite rules for shop post type function gtp_add_shop_rewrite_rules() { add_rewrite_rule( '^shop/([^/]*)/([^/]*)/([^/]*)$', 'index.php?shop-category=$matches[1]&width=$matches[2]&height=$matches[3]', 'top' ); add_rewrite_rule( '^shop/([^/]*)/([^/]*)$', 'index.php?shop-category=$matches[1]&width=$matches[2]', 'top' ); add_rewrite_rule( '^shop/([^/]*)$', 'index.php?shop-category=$matches[1]', 'top' ); } add_action('init', 'gtp_add_shop_rewrite_rules', 10, 0);