栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

WordPress类别发布AJAX分页

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/377943.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号