我刚刚开始使用REST API,并使用它从前端创建帖子。我设法发表了一篇有标题、摘录和内容的文章。我还想添加一个自定义元字段值,非常感谢任何示例或帮助。
这是我的Ajax代码,所有其他字段都正常工作,除了元值没有在post中添加
jQuery( document ).ready( function ( $ ) {
$( '#post-submission-form' ).on( 'submit', function(e) {
e.preventDefault();
var title = $( '#post-submission-title' ).val();
var excerpt = $( '#post-submission-excerpt' ).val();
var content = $( '#post-submission-content' ).val();
var status = 'draft';
var data = {
title: title,
excerpt: excerpt,
content: content,
status: status,
meta: {
'video_url_url' : 'abc',
}
};
$.ajax({
method: "POST",
url: POST_SUBMITTER.root + 'wp/v2/posts',
data: data,
beforeSend: function ( xhr ) {
xhr.setRequestHeader( 'X-WP-Nonce', POST_SUBMITTER.nonce );
},
success : function( response ) {
console.log( response );
alert( POST_SUBMITTER.success );
},
fail : function( response ) {
console.log( response );
alert( POST_SUBMITTER.failure );
}
});
});
} );
我正在尝试将<code>phy_marks。
我的JSON数据:
{ "title": "Why not working finally","content": "Test", "status": "publish" ,"post_type": "candidates", "meta": {
"phy_marks": 66 } }
我的代码:
add_action( 'rest_api_init', 'foo_register_meta_api' );
function foo_register_meta_api() {
// Meta Fields to add to the API
$meta_fields = array(
'phy_marks'
);
// Loop all fields and register each of them to the API
foreach ($meta_fields as $field) {
register_rest_field( 'candidates',
$field,
array(
'get_callback' => function ($params) use ($field) {
return \get_post_meta($params['id'], $field);
},
'update_callback' => function ($value, $object, $fieldName){
return \update_post_meta($object->ID, $fieldName, $value);
},
'schema' => null
)
);
}
}
我今天正在研究这个问题,并提出了以下解决方案,该解决方案运行良好并添加了多个字段。
希望这能帮助那些可能被困在这上面的人。
add_action( 'rest_api_init', 'foo_register_meta_api' );
function foo_register_meta_api() {
// Meta Fields to add to the API
$meta_fields = array(
'field_1',
'foo_bar',
'foobar',
'another_field'
);
// Loop all fields and register each of them to the API
foreach ($meta_fields as $field) {
register_rest_field( 'my-post-type',
$field,
array(
'get_callback' => function ($params) use ($field) {
return \get_post_meta($params['id'], $field);
},
'update_callback' => function ($value, $object, $fieldName){
return \update_post_meta($object->ID, $fieldName, $value);
},
'schema' => null
)
);
}
}
将此添加到您的functions.php:
/**
* Add the meta fields to REST API responses for posts read and write
* Read and write a post meta fields in post responses
*/
function mg_register_meta_api() {
//Meta Fields that should be added to the API
$meta_fields = array(
'video_url_url',
'another_meta_key'
);
//Iterate through all fields and add register each of them to the API
foreach ($meta_fields as $field) {
register_rest_field( 'ring',
$field,
array(
'get_callback' => array( $this, 'mg_fw_get_meta'),
'update_callback' => array( $this, 'mg_fw_update_meta'),
'schema' => null,
)
);
}
}
add_action( 'rest_api_init', 'mg_register_meta_api' );
/**
* Handler for getting custom field data.
*
* @since 0.1.0
*
* @param array $object The object from the response
* @param string $field_name Name of field
*
* @return mixed
*/
function mg_get_meta( $object, $field_name ) {
return get_post_meta( $object[ 'id' ], $field_name );
}
/**
* Handler for updating custom field data.
*
* @since 0.1.0
* @link http://manual.unyson.io/en/latest/helpers/php.html#database
* @param mixed $value The value of the field
* @param object $object The object from the response
* @param string $field_name Name of field
*
* @return bool|int
*/
function mg_update_meta( $value, $object, $field_name ) {
if ( ! $value || ! is_string( $value ) ) {
return;
}
return update_post_meta( $object->ID, $field_name, maybe_serialize( strip_tags( $value ) ) );
}
现在,您应该能够使用api读取和写入元“video_url_url”。
我们曾经轻松地通过控制台去使用 Posts.insert 来创建帖子并插入到数据库。但我们不可能指望用户去打开控制台来创建一个新的帖子吧? 所以我们需要在用户界面上创建一些表单控件,让用户在我们的 App 上发布一些新的帖子。 构建新帖子的提交页面 我们首先为新帖子的提交页面定义一个路由: Router.configure({ layoutTemplate: 'layout', loadi
我正在做一个离子应用程序,该项目需要通过Wordpress API创建带有自定义字段的帖子(我使用ACF Pro和Aires ACF to REST API),我可以使用REST API创建一个普通帖子,即使没有创建或设置ACF字段,但只有在WordPres斯管理界面中创建帖子时,它们才会为帖子创建。 我正在阅读ACF to REST API的文档,但是我只看到了编辑和显示功能。这是否意味着后元必
我正在react和react中创建一个带有创建者姓名的帖子列表 https://jsonplaceholder.typicode.com用户和帖子API 我的操作文件 我的组件 减速机 使用该组件的父组件 我收到此错误消息,请检查 EThttps://jsonplaceholder.typicode.com/users/undefined404 2创建错误。js:17未捕获(promise中)错误
我有一个自定义后类型设置称为艺术家。每个单个艺术家是一个页面(艺术家个人资料,如果你愿意),有一个通过高级自定义字段(ACF)的关系字段类型与该艺术家相关联的产品列表。我需要产品在艺术家页面上显示在他们的类别中。因此,在Elementor中,我需要指定一个查询筛选器ID,以简单地将产品划分为类别。 到目前为止我所尝试的 我试图通过自定义查询仅显示列表中特定类别的产品,因为我需要生成查询ID。 我一
如何创建计算字段以及怎么样从应用程序中使用别名。 计算字段 存储在数据库表中的数据一般不是应用程序所需要的格式,例如: 显示两个信息,但不是在用一个表 不同列中,但程序需要把他们作为一个格式的字段检索出来 列数据是大小混合,但程序需要把所以数据按大写表示。 物品订单表存储的物品的价格和数量,但没有存储物品的总价,打印时,需要物品的总价格。 根据需要表的数据进行总数,平均数等计算。 上面的情况都我们
另外,是否可以共享一个页面的url,而不是使用页面上的开放图形标签来共享位置细节,以便在Facebook Post中使用? JavaScript代码用于创建只带有文本消息的post: 文档中的一个例子说: 这是否意味着不能使用Graph API为用户的提要创建位置帖子? 参考资料: null