Правило перезаписи для пользовательской страницы с вариантами запросов в URL

У меня есть страница под названием «listen» с пользовательским шаблоном, который запускает пользовательский wp_query, который использует переменную «show» в URL. Следующий пример работает…

example.com/listen/?show=thebigshow

I want to be able to get rid of the ?show= part of the url, and format it as follows…

Я хочу избавиться от части ?show= и отформатировать ее следующим образом…

example.com/listen/thebigshow

Я попытался реализовать следующее правило перезаписи, но безрезультатно.

function add_query_vars_filter( $vars ){
  $vars[] = "show";
  return $vars;
}
add_filter( 'query_vars', 'add_query_vars_filter' );

function listen_rewrite_action() {
  add_rewrite_tag('%show%','([^/]*)');
  add_rewrite_rule(
    '^listen/([^/]+)$',
    '/listen/?show=$matches[1]',
    'top'
  );

}
add_action( 'init', 'listen_rewrite_action' );

Мои правила перезаписи:

Rewrite Rules (as previewed in a plugin)

Мой .htaccess:

What .htaccess looks like after generation

Понравился вопрос? Нужен ответ? Поддержите проект
WPAsk
Ответов: 1
  1. Andy Cheeseman

    Решил проблему таким образом:

    function listen_rewrite_action() {
      add_rewrite_tag('%show%','([^/]*)');
      add_rewrite_rule(
        '^listen/([^/]+)$',
        'index.php?pagename=listen&show=$matches[1]',
        'top');
      add_rewrite_rule(
        '^listen/([^/]+)/page/([^/]+)$',
        'index.php?pagename=listen&show=$matches[1]&paged=$matches[2]',
        'top');
    }
    add_action( 'init', 'listen_rewrite_action' );
    
Добавить ответ

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: