Intereting Posts
wp_localize_script $ handle Ошибка меню в консоли администратора с настраиваемым плагином: у вас недостаточно прав для доступа к этой странице Перезапись сообщения slug перед публикацией сообщения Можете ли вы настроить таргетинг на widget_class в register_sidebar? Сделать страницы видимыми только для зарегистрированных пользователей Как я могу взять все идентификаторы из действия untrash_post? Как связать встроенный AJAX с add_action? add_theme_support не выводит миниатюры Как настроить цвета в таблице стилей с помощью параметра WordPress Несколько циклов в результатах поиска Переименование входа в WordPress и получение новой кнопки пароля Как получить текущую страницу ближайшего родительского идентификатора? Не повторяйте сообщения от детей в запросе о таксономии родителей Создание пользовательской публикации в качестве хранилища для констант темы Как справляться со многими атрибутами, не создавая так много вариаций?

Передача переменных PHP на загруженные страницы AJAX

У меня есть блог, который показывает 9 сообщений в блогах на странице, причем каждая дополнительная страница сообщений в блогах автоматически добавляется с помощью плагина Infinite Ajax Scroll .

Каждый раз, когда сообщение в блоге успешно запрашивается, переменная $postCount увеличивает свой счет на 1 .

 [...] <body> <div class="posts"> <?php $postCount = 0; if ( have_posts() ) : while ( have_posts() ) : the_post(); $postCount++; if ( $postCount % 9 == 0 ) : // show featured blog posts else : // show standard blog posts endif; endif; ?> </div> <!-- /posts --> <script> var ias = jQuery.ias({ container: '.posts', item: 'article', pagination: '.pagination', next: '.next', delay: 0, negativeMargin: 1000 }); </script> </body> 

Я бы хотел, чтобы переменная $postCount помнила свой счет на загруженных страницах AJAX. Итак, вместо сброса на 0 следующая страница сообщений в блоге начнется с 10 .

Я понимаю, почему он не работает (переменные являются только локальными), и что мне нужно будет использовать что-то вроде sessions или get , но я не знаю, как это реализовать.

Я предполагаю, что мне нужно запустить session на моем профайле index.php, который вместе с моим подключением к плану IAS …

Любая помощь очень ценится. Благодаря!


Последующие действия 1:

Мне повезло, что PHP-сессии работают, запустив сеанс в моем файле functions.php

 function init_session() { session_start(); } add_action( 'init', 'init_session', 1 ); 

… и добавление сеансов в мой файл следующим образом:

 [...] <body> <div class="posts"> <?php $postCount = 0; if ( isset ( $_SESSION[ 'postCount' ] ) ) : $postCount = $_SESSION[ 'postCount' ]; endif; [...] // wp_query $_SESSION['postCount'] = $postCount; ?> </div> <!-- /posts --> </body> 

Поскольку он стоит, $postCounter продолжает подсчитывать … Так что изначально считалось, что пост 1 может быть пост 100 когда страница обновляется.

Мне нужно развернуть логику, чтобы уничтожить сеанс, если это первый пост …

Любые мысли приветствуются. Благодарю.

WP_Query имеет переменную $post_count . http://codex.wordpress.org/Class_Reference/WP_Query#Properties

Просто передайте это с помощью скрипта, используя wp_localize_script

Мне удалось сохранить $postCount переменной $postCount , запустив php-сессию в моем файле functions.php

 function init_session() { session_start(); } add_action( 'init', 'init_session', 1 ); 

… и настроить мой цикл следующим образом:

 [...] <body> <div class="posts"> <?php $postCount = 0; if ( is_paged() ) : $postCount = $_SESSION[ 'postCount' ]; endif; [...] // wp_query $_SESSION['postCount'] = $postCount; ?> </div> <!-- /posts --> </body> 

Использование is_paged() – это ключ для сохранения счетчика при 0 после обновления.