motiontactic / wp-ajax
类用于扩展以向 WP-AJAX 添加样板代码
1.7
2022-01-20 22:19 UTC
Requires
- php: >=7.1
README
一个类,用于快速添加样板代码以设置 WordPress AJAX
安装
推荐通过 composer 安装 WP MU 插件
$ composer require motiontactic/wp-ajax
使用方法
设置
此 motiontactic\WP_AJAX 类旨在扩展以控制查询。扩展后,使用所需设置构造您的新类
<?php require_once __DIR__ . '/vendor/autoload.php'; use motiontactic\WP_AJAX; class BlogFeed extends WP_AJAX { protected function getQueryArgs() { return [ 'post_status' => 'publish', 'post_type' => 'post', 'posts_per_page' => 1, 'paged' => $_REQUEST[ 'page' ], ]; } } new BlogFeed( [ 'action' => 'get_posts', 'output_template' => 'partials.blog-posts', 'pagination_template' => 'partials.blog-pagination', 'pagination_pages_to_show' => 9, 'include_nopriv' => true, ] );
默认参数
$args = [ 'action' => 'get_posts', //ajax action name used by JS to address this query 'output_template' => false, //blade template location for the output html 'pagination_template' => false, //blade template location for the pagination html 'pagination_pages_to_show' => 9, //Used in the pagination array creation 'include_nopriv' => true, //Whether or not to include wp_ajax_nopriv ];
额外功能
如果您只需要访问分页功能,您可以通过静态方法 arrayOfPages 访问它
motiontactic\WP_AJAX::arrayOfPages( 6, 100, 9 );
Blade 起始点
输出
//coming soon has access to $posts which is an array of WP Post objects
分页
@if( $current_page !== 1) <a href="?paged={{ $current_page - 1 }}" class="prev-arrow nav-arrow" data-paged="{{ $current_page - 1 }}"> <div class="pagination-arrow prev"> < </div> </a> @endif @foreach($pages as $page) @if($page === 'E') <p class="page width-auto pagination-spacing"> ... </p> @else <a href="?paged={{ $page }}" class="page width-auto {{ $page === $current_page ? 'current' : '' }}" data-paged="{{ $page }}">{{ $page }}</a> @endif @endforeach @if( $current_page !== $max_pages ) <a href="?paged={{ $current_page + 1 }}" class="next-arrow nav-arrow" data-paged="{{ $current_page + 1 }}"> <div class="pagination-arrow next"> > </div> </a> @endif