Вы можете справиться с этим при загрузке отдельных страниц через конечную точку перезаписи.Это будет отправлять запрос на сервер для каждого нажатия кнопки, и вам нужно будет отформатировать ссылки самостоятельно, чтобы добавить конечную точку к постоянной ссылке, не будучи уверенным, соответствует ли это вашим требованиям.
Сначала зарегистрируйте конечную точку длятип поста на странице:
function wpa_view_endpoint(){
add_rewrite_endpoint( 'view', EP_PAGES );
}
add_action( 'init', 'wpa_view_endpoint' );
Теперь для каждой страницы, например:
http://example.com/some-page/
Вы также можете иметь URL-адреса, такие как:
http://example.com/some-page/view/list/
Значение просмотра будетбыть доступным в вашем шаблоне через get_query_var
:
$view = get_query_var( 'view' );
Затем вы можете отобразить любую разметку на основе этого значения.
Вы также можете отфильтровать загрузку шаблонов страниц и загрузить отдельный шаблондля каждого представления таким образом:
`function wpa_view_template( $template = '' ){
global $wp_query;
if( isset( $wp_query->query_vars['view'] ) ) {
$template = locate_template( $wp_query->query_vars['view'] . '.php', false );
}
return $template;
}
add_filter( 'page_template', 'wpa_view_template' );`
Так для примера:
`http://example.com/some-page/view/list/`
Этот фильтр загрузит шаблон list.php вместо вашего шаблона страницы по умолчанию.