将PHP变量传递给加载了AJAX的页面

时间:2014-12-10 作者:Rich

我有一个博客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.

我理解为什么它不起作用(变量只是局部变量),我需要使用sessionsget, 但我不知道如何实现这一点。

我想我需要开始session 在我的索引上。php页面将其传递给我的IAS 插件调用。。。

非常感谢您的帮助。谢谢

<小时>

Follow up 1:

通过在我的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 继续计数。。。那么,最初认为post1 可能是post100 刷新页面时。

如果这是第一篇帖子,我需要确定破坏会话的逻辑。。。

欢迎有任何想法。谢谢

2 个回复
最合适的回答,由SO网友:Rich 整理而成

我能够保持$postCount 通过在我的函数中启动php会话来计算变量。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 刷新后。

SO网友:paul

WP_Query 有一个$post_count 变量http://codex.wordpress.org/Class_Reference/WP_Query#Properties

只需通过脚本使用wp_localize_script

结束

相关推荐

Admin-Ajax.php, SSL, Non-SSL

我有一个反向代理背后的WordPress网站。该站点通过http,但wp admin区域除外,该区域位于https下。我们没有BasicAuth或任何运行在管理区域顶部的东西。我们的一个前端插件出现故障,因为它正在调用https://admin-ajax.php 浏览器似乎不喜欢这种行为。(如果有关系,URL字符串包含nonce)允许前端调用admin ajax的最佳方式是什么。php?我是否应该将所有对该文件的调用从https重定向到http?如果是,我如何做到这一点,同时仍然要求/wp admin下的