devgeniem / wp-no-admin-ajax
一款简化 WP AJAX 流程并将其请求定向到前端而不是管理后端的 WordPress 插件。
1.0.3
2017-07-17 11:15 UTC
Requires
- php: >=5.6
- composer/installers: ^v1.0.12
This package is auto-updated.
Last update: 2024-09-20 15:21:58 UTC
README
WP 插件: No-Admin-Ajax
一款更改 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/before
或 no-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”] ); }