使用Ajax从帖子外部更新帖子的元数据(update_post_meta)可以通过以下步骤实现:
以下是一个示例的前端代码:
function updatePostMeta(postId, metaKey, metaValue) {
// 创建一个XMLHttpRequest对象
var xhr = new XMLHttpRequest();
// 指定请求的URL和请求方法
xhr.open('POST', 'your-backend-api-url', true);
// 设置请求头,告诉后端发送的是Ajax请求
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
// 设置请求完成后的回调函数
xhr.onload = function() {
if (xhr.status === 200) {
// 请求成功,可以在这里处理返回的响应
console.log(xhr.responseText);
} else {
// 请求失败,可以在这里处理错误
console.error(xhr.statusText);
}
};
// 发送请求
xhr.send(JSON.stringify({
postId: postId,
metaKey: metaKey,
metaValue: metaValue
}));
}
在上述代码中,需要将'your-backend-api-url'替换为实际的后端接口URL。
以下是一个示例的后端代码(使用WordPress插件方式):
<?php
// 在插件文件中注册一个Ajax接口
add_action('wp_ajax_update_post_meta', 'update_post_meta_callback');
add_action('wp_ajax_nopriv_update_post_meta', 'update_post_meta_callback');
function update_post_meta_callback() {
// 解析Ajax请求中的参数
$post_id = $_POST['postId'];
$meta_key = $_POST['metaKey'];
$meta_value = $_POST['metaValue'];
// 更新帖子的元数据
update_post_meta($post_id, $meta_key, $meta_value);
// 返回一个响应给前端
echo 'Post meta updated successfully';
// 终止脚本执行
wp_die();
}
在上述代码中,'update_post_meta'是自定义的接口名称,可以根据实际需求进行修改。
这样,当调用updatePostMeta
函数时,会向后端发送一个Ajax请求,后端接收到请求后会更新对应帖子的元数据,并返回一个响应给前端。
领取专属 10元无门槛券
手把手带您无忧上云