devgeniem/wp-no-admin-ajax

一款简化 WP AJAX 流程并将其请求定向到前端而不是管理后端的 WordPress 插件。

安装数: 17,050

依赖: 1

建议: 0

安全: 0

星标: 35

关注者: 12

分支: 12

开放问题: 2

类型:wordpress-plugin

1.0.3 2017-07-17 11:15 UTC

This package is auto-updated.

Last update: 2024-09-20 15:21:58 UTC


README

geniem-github-banner

WP 插件: No-Admin-Ajax

Latest Stable Version Total Downloads Latest Unstable Version License

一款更改 WP AJAX 流程并将 AJAX 请求重写为自定义 URL 而不是 /wp-admin/admin-ajax.php 后端的 WordPress 插件。

安装

建议通过 composer 在 WP 项目中安装

$ composer require devgeniem/wp-no-admin-ajax

使用场景

  • 将所有 admin-ajax.php 查询重写为自定义 URL,以便您可以让 /wp-admin/ 仅对特定 IP 地址开放。
  • 您可以使用此功能来混淆可能尝试利用 admin-ajax.php 漏洞的机器人。

配置

变量

此插件 URL 默认为 /no-admin-ajax/。您可以使用过滤器来更改它,或者您可以通过以下方式自行设置默认值:

// This turns the no admin ajax url to -> /ajax/
define('WP_NO_ADMIN_AJAX_URL','ajax');

注意:此处设置的值也可以被过滤器过滤,这只是为了设置自定义 URL 的起点。

注意 2:插件安装和其他更改后,务必通过访问设置 > 永久链接 > 并保存它(不进行任何修改)来刷新您的永久链接。

钩子和过滤器

您可以使用过滤器 no-admin-ajax/keyword 来自定义 URL。

<?php

// This changes /no-admin-ajax/ -> /ajax/
add_filter( 'no-admin-ajax/keyword', 'my_custom_no_admin_ajax_url' );
function my_custom_no_admin_ajax_url( $ajax_url ) {
    return "ajax";
}

您可以使用 no-admin-ajax/beforeno-admin-ajax/before/{action} 来在 AJAX 请求之前运行命令。

<?php
// Writes log entries after hearthbeat action for debugging
do_action( 'no-admin-ajax/before/heartbeat' , 'my_custom_no_admin_ajax_debug' );
function my_custom_no_admin_ajax_debug() {
    error_log( 'DEBUG | heartbeat action was run by: '.$_SERVER[“REMOTE_ADDR”] );
}