gebruederheitz/wp-async-posts-provider

帮助您在插件或主题中将帖子异步发送到前端

v0.2.2 2023-02-13 09:57 UTC

README

帮助您在插件或主题中将帖子异步发送到前端

提供了一个简单的接口,非常适合自定义分页,尤其是在混合设置中使用,即同时使用同步服务器端渲染和异步AJAX从前端脚本或框架中加载帖子的WP自带的REST API。

安装

通过composer

> composer require gebruederheitz/wp-async-posts-provider

使用

使用默认设置的容器

初始化容器(通常在您的 functions.php 文件中)

<?php

use Gebruederheitz\WpAsyncPostsProvider\AsyncPostsProvider;

AsyncPostsProvider::getInstance()->init();

确保您有Composer自动加载或替代类加载器。

您可以将 ContainerSettings 提供的任何选项作为字符串键数组中的类属性传递给容器以修改默认设置(见下文

AsyncPostsProvider::getInstance()->init([
    'rendererTemplatePath' => 'template-parts/fancy/excerpt',
    'defaultPartial' => 'fancy-tile',
]);

实例化容器将注册所有相关的Wordpress钩子并为使用前端脚本/框架设置REST路由。

可用选项

以下选项可以通过向容器传递具有以下键的数组来设置

基本用法

混合设置:渲染“零页”

如果您想向用户发送包含前几篇帖子的渲染HTML,可以使用PostFilter自动限制首页(目前为is_home(),将很快可定制)主查询最初返回的帖子数量。
通过传递initialPostCount选项设置您希望最初加载的帖子数量。将此值设置为0将禁用预过滤,并将接收主查询的默认项目数量(可以通过Wordpress设置设置)。

要确定是否还有帖子需要异步加载,可以使用PostFilter的shouldShowLoadMoreButton()方法

use Gebruederheitz\WpAsyncPostsProvider\AsyncPostsProvider;
?>
<div>
    <?php if (AsyncPostsProvider::getInstance()->getPostFilter()->shouldShowLoadMoreButton()): ?>
        <button id="load-more">Load more posts</button>
    <?php endif; ?>
</div>

前端使用

待办事项

扩展或修改组件

注入服务

待办事项

使用PostFilter进行自定义过滤

待办事项

开发

待办事项