WordPress类别发布AJAX分页

WordPress类别发布AJAX分页,第1张

WordPress类别发布AJAX分页

您需要做的是防止分页链接上的默认设置,并发送AJAX请求以获取帖子。WordPress以这种方式用于AJAX:您将所有请求发送到

wp-admin/admin-ajax.php
一个
action
参数,该参数将标识请求,以便使用and 钩子将其捕获到 functions.php中
wp_ajax_nopriv_my_action``wp_ajax_my_action

因此,基本上,您将在模板文件中执行此 *** 作:

<script type="text/javascript">    jQuery(document).ready(function($) {        $('.pagination a').click(function(e) { e.preventDefault(); // don't trigger page reload if($(this).hasClass('active')) {     return; // don't do anything if click on current page } $.post(     '<?php echo admin_url('admin-ajax.php'); ?>', // get admin-ajax.php url     {         action: 'ajax_pagination',         page: parseInt($(this).attr('data-page')), // get page number for "data-page" attribute         posts_per_page: <?php echo get_option('posts_per_page'); ?>     },     function(data) {         $('#content-posts').html(data); // replace posts with new one     } });        });    });</script>

您必须根据模板来更改类名称/属性等。

而在 functions.php 方面:

function my_ajax_navigation() {    $requested_page = intval($_POST['page']);    $posts_per_page = intval($_POST['posts_per_page']) - 1;    $posts = get_posts(array(        'posts_per_page' => $posts_per_page,        'offset' => $page * $posts_per_page    ));    foreach ($posts as $post) {        setup_postdata( $post );        // DISPLAY POST HERE        // good thing to do would be to include your post template    }    exit;}add_action( 'wp_ajax_ajax_pagination', 'my_ajax_navigation' );add_action( 'wp_ajax_nopriv_ajax_paginationr', 'my_ajax_navigation' );

问题是查询所请求页面的帖子(以便我们计算页码和每页帖子选项的偏移量),并使用用于单个帖子的模板显示它们。

您可能还需要 *** 纵浏览器历史记录,为此,您应该检查一下History API。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4925540.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存