要通过WordPress的adminajax.php文件传递值并创建或存储文章字段,您需要执行以下步骤:
// 添加一个用于处理AJAX请求的函数
function my_custom_ajax_handler() {
// 检查是否已登录
if (is_user_logged_in()) {
// 获取传递的数据
$post_id = $_POST['post_id'];
$field_name = $_POST['field_name'];
$field_value = $_POST['field_value'];
// 检查数据有效性
if (isset($post_id) && isset($field_name) && isset($field_value)) {
// 更新文章字段
update_post_meta($post_id, $field_name, $field_value);
echo '成功保存字段值!';
} else {
echo '缺少必要的数据!';
}
} else {
echo '您需要登录才能执行此操作。';
}
// 确保不输出其他内容
die();
}
// 添加一个AJAX处理程序,可以从前端调用
add_action('wp_ajax_my_custom_action', 'my_custom_ajax_handler');
add_action('wp_ajax_nopriv_my_custom_action', 'my_custom_ajax_handler');
// 用于处理AJAX请求的JavaScript代码
jQuery(document).ready(function($) {
// 点击按钮时触发AJAX请求
$('#yourbuttonid').click(function() {
var post_id = $('#postid').val(); // 获取文章ID
var field_name = $('#fieldname').val(); // 获取字段名
var field_value = $('#fieldvalue').val(); // 获取字段值
// 发送AJAX请求
$.ajax({
type: 'POST',
url: ajaxurl, // WordPress提供的全局变量,指向adminajax.php
data: {
action: 'my_custom_action', // 指定要执行的AJAX处理程序
post_id: post_id,
field_name: field_name,
field_value: field_value
},
success: function(response) {
// 处理AJAX响应
alert(response);
}
});
});
});
请注意:
请将上述代码中的#yourbuttonid
,#postid
,#fieldname
和#fieldvalue
替换为您实际使用的HTML元素的ID。
请确保在WordPress加载jQuery或其他必要的JavaScript库,或者您可以在前端代码中包含它们。
代码中有一些基本的错误检查,但您可能需要根据需要进行更多的验证和安全性检查。
您需要确保用户已登录,因为只有登录用户才能执行这个操作。如果需要匿名用户也可以执行,请移除is_user_logged_in()
检查。
AJAX请求的URL应该设置为ajaxurl
,这是WordPress提供的全局变量,指向adminajax.php文件。
通过执行这些步骤,您可以在WordPress中使用AJAX来创建或存储文章字段值。确保适应您的具体需求和安全性要求进行必要的修改。