首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用Ajax从帖子外部update_post_meta外部帖子?

使用Ajax从帖子外部更新帖子的元数据(update_post_meta)可以通过以下步骤实现:

  1. 在前端页面中,使用JavaScript编写一个Ajax请求函数,用于向后端发送更新请求。可以使用原生的XMLHttpRequest对象或者使用现代的fetch API来发送请求。
  2. 在Ajax请求函数中,指定请求的URL为后端处理更新请求的接口。该接口可以是自定义的WordPress插件或者主题中的PHP文件。
  3. 在后端接口中,接收Ajax请求,并解析请求中的参数。参数中应包含要更新的帖子ID和要更新的元数据键值对。
  4. 使用WordPress提供的函数(update_post_meta)来更新帖子的元数据。该函数接受三个参数:帖子ID、元数据键和元数据值。
  5. 更新完成后,返回一个响应给前端,可以是一个成功或失败的消息。

以下是一个示例的前端代码:

代码语言:txt
复制
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插件方式):

代码语言:txt
复制
<?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请求,后端接收到请求后会更新对应帖子的元数据,并返回一个响应给前端。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券