Хороший плагин.Пример использования по теме (пробовал с Twenty Fifteen):
1.Страница настраиваемого шаблона
Создайте файл page-pjax.php
внутри темы.
На странице администратора создайте страницу и используйте этот шаблон.Он просто отображает ссылки на архивы с пролетом вокруг них.
<?php
/**
* Template Name: Pjax Example
*/
get_header(); ?>
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<?php
$args = array(
'type' => 'daily',
'limit' => '',
'format' => 'html',
'before' => '<span class="a-pjax">',
'after' => '</span>',
'show_post_count' => true,
'echo' => 1,
'order' => 'DESC'
);
wp_get_archives( $args );
?>
<div id="pjax-container"></div>
</main>
</div>
<?php get_footer(); ?>
2.Добавьте плагин pjax и пользовательский скрипт
Внутри папки /js
на тему добавьте jquery.pjax.js
и следующий скрипт my-pjax.js
.
jQuery(document).ready(function($) {
$(document).pjax('span.a-pjax a, #recent-posts-2 a', '#pjax-container', {fragment:'#main'})
});
3.Загрузите jQuery, pjax и наш собственный скрипт
In functions.php
.Загружается только на странице шаблона.
add_action( 'wp_enqueue_scripts', 'load_scripts_so_43903250' );
function load_scripts_so_43903250() {
if ( is_page_template( 'page-pjax.php' ) ) {
wp_register_script( 'pjax', get_stylesheet_directory_uri() . '/js/jquery.pjax.js' );
wp_enqueue_script( 'my-pjax', get_stylesheet_directory_uri() . '/js/my-pjax.js', array('jquery','pjax') );
}
}
4.ЗАМЕЧАНИЯ
$(document).pjax(
'span.a-pjax a, #recent-posts-2 a', // ANCHORS
'#pjax-container', // TARGET
{fragment:'#main'} // OPTIONS
);
Якорями являются ссылки на архивы и виджета Последние сообщения с идентификатором #recent-posts-2
.Удалите его для этого теста или добавьте другой контейнер ссылок по желанию.
TARGET жестко задан в шаблоне.
ОПЦИИ, фрагмент важен, так как pjax не загружает полные страницы HTML, у нас естьсказать ему, какую часть целевой страницы мы хотим.
В Twenty Fifteen содержимое находится внутри этого div: <main id="main" class="site-main" role="main">
.Настройте в соответствии с используемой темой.
См. Примечания pjax: https://github.com/defunkt/jquery-pjax#response-types-that-force-a-reload