WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

Как добавить кастомный роутинг в WordPress?

Суть такая: есть кастомный тип записи online. Там список магазинов, у них есть своя страница single-online.php. Есть страница reviews, туда я вывожу список магазинов online и мне надо, чтобы по ссылке магазина на странице reviews переходило на /reviews/название магазина. Т.е., чтобы были пути /online/название магазина и /reviews/название магазина. Замечу, что там будет совсем разный контент, а не дублирующий. И ещё как правильно прописать ссылку. Видимо не <?php the_permalink(); ?>

Смотрел в сторону add_rewrite_rule, но не совсем понял как сделать.

Спасибо

0
satantx
1 месяц назад 1
  • 1
    Andrew475 america-xix.ru

    https://wp-kama.ru/function/add_rewrite_rule

    Пример №1, например.

    add_action('init', 'do_rewrite');
    function do_rewrite(){
    
    	add_rewrite_rule( '^(online|reviews)/([^/]*)/?', 'index.php?pagename=$matches[1]&shop=$matches[2]', 'top' );
    
    	add_filter( 'query_vars', function( $vars ){
    		$vars[] = 'shop';
    		return $vars;
    	} );
    }

    чтобы продолжить использование в шаблоне стандартных функций формирования ссылок, повесьте на фильтры page_link или post_link (в зависимости от типа записей, для которого создается ссылка) свою функцию, которая будет изменять возвращаемую ссылку

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация