Woocommerce Add_Rewrite_Rule не работает для страницы магазина - PullRequest
0 голосов
/ 05 июня 2019

Я хочу, чтобы ниже URL:

https://www.example.com/shop/keyword/

, чтобы работать как ниже URL.(ниже одного хорошо работает.)

https://www.example.com/shop/?search_text=keyword

Я могу добиться такого поведения для своей страницы /search/, когда добавляю следующий код в functions.php.

function my_rewrite_rule() {
    add_rewrite_rule('^search/([^/]*)?','index.php?pagename=search&search_text=$matches[1]','top');
}

, но тот же код не работает для /shop/ страницы.

Нормальным поведением должно быть перечисление всех товаров.Однако /shop/ URL страницы не показывает результатов.

Редактировать: Не работает даже после обновления постоянных ссылок.

1 Ответ

1 голос
/ 09 июня 2019

Возможно, я не до конца понимаю ваш вопрос, но вы пытаетесь это сделать?

enter image description here

В этом случае запрос WooCommerce для архива /shop/ соответствует post_type=product.

Попробуйте это правило перезаписи и удалите постоянные ссылки, перейдя в Настройки-> Постоянные ссылки на панели управления WordPress и затем нажав кнопку Сохранить.

/**
 * Add rewrite rule from `/shop/keyword/` to `shop/?search_text=keyword`
 *
 * @link /8894755/woocommerce-addrewriterule-ne-rabotaet-dlya-stranitsy-magazina
 */
add_action( 'init', function (): void {
    add_rewrite_rule(
        '^shop/([^/]*)?',
        'index.php?post_type=product&search_text=$matches[1]',
        'top'
    );
} );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...