我有一个奇怪和令人沮丧的wordpress admin-ajax.php文件的行为,当我发出ajax请求它返回404错误错误请求.
(function( $ ) {
var ajaxscript = { ajax_url : 'mydomain.com/wp-admin/admin-ajax.php' }
$.ajax({
url : ajaxscript.ajax_url,
data : {
action : 'cart_clb',
id : 1
},
method : 'POST',
success : function( response ){ console.log(response) },
error : function(error){ console.log(error) }
})
})(jQuery)
Run Code Online (Sandbox Code Playgroud)
在我的functions.php里面
add_action( 'wp_ajax_post_cart_clb', 'cart_clb' );
add_action( 'wp_ajax_nopriv_post_cart_clb', 'cart_clb' );
function cart_clb(){
echo json_encode($_POST);
die();
}
Run Code Online (Sandbox Code Playgroud)
如上所述,当我执行请求时:
mydomain.com/wp-admin/admin-ajax.php 400 (Bad Request)
{readyState: 4, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}
Run Code Online (Sandbox Code Playgroud)
有人可以帮我取悦吗?谢谢.
我为一家小民宿创建了一个网站,但是发现了一个问题,不知道是依赖wordpress还是服务器。
本网站使用弹出动画来显示房间描述。问题是这个弹出窗口在上周停止工作。从浏览器控制台,我注意到整个事情取决于 404 错误(找不到 admin-ajax.php)。这是细节:
jquery.js?ver=1.12.4:4 POST http://lettoacastello.net/wp-admin/admin-ajax.php 404 (Not Found)
send @ jquery.js?ver=1.12.4:4
ajax @ jquery.js?ver=1.12.4:4
(anonymous) @ script.js?ver=4.9.1:207
dispatch @ jquery.js?ver=1.12.4:3
r.handle @ jquery.js?ver=1.12.4:3
Run Code Online (Sandbox Code Playgroud)
为了能够暂时解决问题,我只需从仪表板重新安装 WordPress。问题一整天都没有再出现,一切正常!但是第二天一切又重新开始,问题又出现了(这个循环每天都这样继续)。出于这个原因,我不明白这是否是服务器问题。
最后一件非常重要的事情。如果我登录到 WordPress 管理面板(浏览器识别“admin-ajax.php”文件),弹出窗口没有问题。
代码不是我写的(开发者说问题不取决于他)。
但是,我相信这是控制房间弹出窗口的代码部分:
jQuery(document).ready(function($){
$('.special-room button.btn, .rooms-sec button.btn').live('click', function(e){
e.preventDefault();
$('#room.modal').html('');
var thislink = this;
var page_id = $(this).data('id');
$.ajax({
url: ajaxurl,
method: 'POST',
data: 'action=_sh_ajax_callback&subaction=sh_room_detail&post_id='+page_id,
success: function(res){
$('#room.modal').html(res);
}
});
});
Run Code Online (Sandbox Code Playgroud)
拜托,我可以请你帮忙吗?不幸的是我不是很技术。
谢谢
我创建了一个分类法并将其附加到附件或媒体上.
我正在使用"高级自定义字段"添加分类字段,该字段显示为复选框组.它将字段正确添加到网格和列表视图中的附件页面.
在列表视图中,字段正确更新,但在网格视图中,它仅保存单击的最后一个复选框.这是由某种onclick函数引起的,当单击每个复选框时会激活admin-ajax.因此,它只发送单击框的值.我试图找到一种方法来改变js函数以添加复选框组和多选.
更新:我已将该功能跟踪到一个onchange.
功能:保存
file:media-views.min.js
用于复制问题的代码:
分类:
function cptui_register_my_taxes() {
$labels = array(
"name" => __( "Image Tags", "" ),
"singular_name" => __( "Image Tag", "" ),
);
$args = array(
"label" => __( "Image Tags", "" ),
"labels" => $labels,
"public" => true,
"hierarchical" => false,
"label" => "Image Tags",
"show_ui" => true,
"show_in_menu" => true,
"show_in_nav_menus" => false,
"query_var" => true,
"rewrite" => false,
"show_admin_column" => false,
"show_in_rest" => false,
"rest_base" => "imagetags",
"show_in_quick_edit" => false,
); …Run Code Online (Sandbox Code Playgroud) 如果没有 GET=action 或 POST=action,我需要 htaccess 重写来阻止请求。
如果有人跑
example.com/wp-admin/admin-ajax.php
Run Code Online (Sandbox Code Playgroud)
然后他会看到错误 404。
我认为这应该可以重写,但我不知道这是如何工作的:
RewriteRule ^wp-admin/admin-ajax.php$ index.php [L,QSA]
Run Code Online (Sandbox Code Playgroud)