Наконец то, я наткнулся на плагин PJAX для jQuery и решил его протестировать.
pjax – это плагин jQuery, который использует ajax и pushState, чтобы обеспечить быстрый просмотр страниц с реальными постоянными ссылками, заголовками страниц и кнопкой возврата назад.
pjax работает, извлекая HTML с вашего сервера через ajax и заменяя содержимое элемента контейнера на вашей странице загруженным HTML. Затем он обновляет текущий URL в браузере, используя pushState. Это приводит к более быстрой навигации по страницам по двум причинам:
- Никакие ресурсы страницы (JS, CSS) не выполняются повторно или повторно;
- Если сервер настроен для pjax, он может визуализировать только частичное содержимое страницы и, таким образом, избежать потенциально дорогостоящего полного рендеринга макета.
Более подробно Вы можете ознакомиться на странице GitHub PJAX .
Для нормальной работы требуется:
1. Скачать сам плагин jquery.pjax.js с GitHub PJAX и поместить в то место где у вас все JS. У меня это /js/jquery.pjax.js
2. В файле functions.php подключить сам скрипт
wp_enqueue_script( 'pjax', get_template_directory_uri() . '/js/jquery.pjax.js', array(), null, true );
3. В header.php до закрытия </head> поместить следующий код
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script> <script type="text/javascript"> $(function () { $(document).pjax('a', '#pjax-container', { fragment: '#pjax-container' }); }); </script>
4. И соответственно во всех причастных файлах archive.php, category.php, index.php, page.php, single.php в месте где загружается контент ( <div id=”content”> или
<main id=”content”>) необходимо обернуть все в <div id=”pjax-container”>
Пример:
<!DOCTYPE html> <html> <head> <title>Index</title> <script src="//code.jquery.com/jquery-1.11.3.min.js"></script> <script src="jquery.pjax.js"></script> <script src="script.js"></script> </head> <body> <div id="pjax-container"> <div id="content"> <h1>Заголовок сайта</h1> <p> Привет мир! <a href="page.html">перейдите по этой ссылке</a>. </p> </div> </div> <footer>2015+</footer> </body> </html>