Wordpress jQuery如何在切换帖子时重置分页?

Wordpress jQuery如何在切换帖子时重置分页?,wordpress,pagination,reset,jquery,Wordpress,Pagination,Reset,Jquery,当然,一定有人知道怎么才能让它工作 我的博客目前设置为一个自定义页面,只显示给定类别中的帖子。每个帖子都有一个切换按钮。当按下切换按钮时,文章隐藏(整个div与标题和所有文章内容一起隐藏)。这可以按预期工作 该页面还设置为每页显示10篇文章。如果我有11篇文章,第11篇被推到第2页。这可以按预期工作 问题是当一篇文章被切换时(比如说第3篇文章),我在这一页上总共有9篇文章,第2页上还有11篇文章。我想要发生的是,当第3篇文章被切换时,第11篇文章应该继续到第1页,第2页基本上消失了(因为那里没有

当然,一定有人知道怎么才能让它工作

我的博客目前设置为一个自定义页面,只显示给定类别中的帖子。每个帖子都有一个切换按钮。当按下切换按钮时,文章隐藏(整个div与标题和所有文章内容一起隐藏)。这可以按预期工作

该页面还设置为每页显示10篇文章。如果我有11篇文章,第11篇被推到第2页。这可以按预期工作

问题是当一篇文章被切换时(比如说第3篇文章),我在这一页上总共有9篇文章,第2页上还有11篇文章。我想要发生的是,当第3篇文章被切换时,第11篇文章应该继续到第1页,第2页基本上消失了(因为那里没有可以显示的文章)

为了便于说明: 第1页显示帖子1,2,3,4,5,6,7,8,9,10 第2页显示帖子11…等等

如果切换了Post 3: 第1页显示帖子1,2,4,5,6,7,8,9,10,11 第2页消失(除非有帖子12、13等)

有人知道如何实现这一点吗

page.php:

<?php
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $args = array(
        'category_name' => 'post',
        'paged' => $paged,
        'posts_per_page' => 10
    );
    query_posts($args);
    while (have_posts()) : the_post();
?>

..........the posts are displayed.............

    <?php endwhile; ?>

<script type="text/javascript">
var pager = new Imtech.Pager();
$(document).ready(function() {
pager.paragraphsPerPage = 5; // set amount elements per page
pager.pagingContainer = $('#paginate'); // set of main container
pager.paragraphs = $('div.z', pager.pagingContainer); // set of required containers
pager.showPage(1);
});
</script>
pagination.js

var Imtech = {};
Imtech.Pager = function() {
this.paragraphsPerPage = 3;
this.currentPage = 1;
this.pagingControlsContainer = '#pagingControls';
this.pagingContainerPath = '#contained';
this.numPages = function() {
    var numPages = 0;
    if (this.paragraphs != null && this.paragraphsPerPage != null) {
        numPages = Math.ceil(this.paragraphs.length / this.paragraphsPerPage);
    }
    return numPages;
};
this.showPage = function(page) {
    this.currentPage = page;
    var html = '';
    this.paragraphs.slice((page-1) * this.paragraphsPerPage,
        ((page-1)*this.paragraphsPerPage) + this.paragraphsPerPage).each(function() {
        html += '<div>' + $(this).html() + '</div>';
    });
    $(this.pagingContainerPath).html(html);
    renderControls(this.pagingControlsContainer, this.currentPage, this.numPages());
}
var renderControls = function(container, currentPage, numPages) {
    var pagingControls = 'Page: <ul>';
    for (var i = 1; i <= numPages; i++) {
        if (i != currentPage) {
            pagingControls += '<li><a href="#" onclick="pager.showPage(' + i + '); return false;">' + i + '</a></li>';
        } else {
            pagingControls += '<li>' + i + '</li>';
        }
    }
    pagingControls += '</ul>';
    $(container).html(pagingControls);
}
}
var-Imtech={};
Imtech.Pager=函数(){
本段第页=3;
this.currentPage=1;
this.pagingControlsContainer='#pagingControls';
this.pagingContainerPath='#contained';
this.numPages=函数(){
var numPages=0;
if(this.paragraphs!=null&&this.paragraphspage!=null){
numPages=Math.ceil(this.parations.length/this.paragraphsPerPage);
}
返回数值;
};
this.showPage=函数(第页){
this.currentPage=第页;
var html='';
本.段落.切片((第1页)*本.段落,
((第1页)*此.段落页面)+此.段落页面)。每个(函数(){
html++=''+$(this.html()++'';
});
$(this.pagingContainerPath).html(html);
RenderControl(this.pagingControlsContainer、this.currentPage、this.numPages());
}
var renderControls=函数(容器、当前页面、numPages){
var pagingControls='Page:
    ';
    对于(var i=1;i我的答案是通过ajax用posts重新加载当前页面

    • 通过javascript和php生成分页没有问题
    • 初始加载和后续加载的行为相同(当用户隐藏帖子时)
    • 使用jquery可以使分页工作非常简单

    这是如何实现的?
    var Imtech = {};
    Imtech.Pager = function() {
    this.paragraphsPerPage = 3;
    this.currentPage = 1;
    this.pagingControlsContainer = '#pagingControls';
    this.pagingContainerPath = '#contained';
    this.numPages = function() {
        var numPages = 0;
        if (this.paragraphs != null && this.paragraphsPerPage != null) {
            numPages = Math.ceil(this.paragraphs.length / this.paragraphsPerPage);
        }
        return numPages;
    };
    this.showPage = function(page) {
        this.currentPage = page;
        var html = '';
        this.paragraphs.slice((page-1) * this.paragraphsPerPage,
            ((page-1)*this.paragraphsPerPage) + this.paragraphsPerPage).each(function() {
            html += '<div>' + $(this).html() + '</div>';
        });
        $(this.pagingContainerPath).html(html);
        renderControls(this.pagingControlsContainer, this.currentPage, this.numPages());
    }
    var renderControls = function(container, currentPage, numPages) {
        var pagingControls = 'Page: <ul>';
        for (var i = 1; i <= numPages; i++) {
            if (i != currentPage) {
                pagingControls += '<li><a href="#" onclick="pager.showPage(' + i + '); return false;">' + i + '</a></li>';
            } else {
                pagingControls += '<li>' + i + '</li>';
            }
        }
        pagingControls += '</ul>';
        $(container).html(pagingControls);
    }
    }