我目前正在使用Wordpress REST API来读写帖子。
我创建了一个名为属性
的自定义帖子类型:
register_post_type( 'property', array(
'labels' => array(
'name' => 'Properties',
'singular_name' => 'Property',
),
'description' => '',
'show_in_rest' => true,
'public' => true,
'menu_position' => 20,
'supports' => array( 'title', 'editor')
));
add_action( 'init', 'property_cpt' );
我还添加了一个名为< code>property_name的自定义元框,它将出现在编辑文章管理页面中:
function add_property_metaboxes(){
add_meta_box(
'property_name', // id
'Name', // title
'property_name_callback', // callback
'property', // page
'normal', // context
'default' // priority
);
}
function property_name_callback() {
global $post;
wp_nonce_field( basename( __FILE__ ), 'property_fields' );
$value = get_post_meta( $post->ID, 'property_name', true );
echo '<input name="property_name" type="text" value="' . $value . '" />';
}
add_action( 'add_meta_boxes', 'add_property_metaboxes' );
我正在处理此帖子类型的保存功能:
function property_save_meta( $post_id, $post ) {
if ( ! current_user_can( 'edit_post', $post_id ) ) {
return $post_id;
}
if ( !isset( $_POST['property_name'] ) ||
!wp_verify_nonce( $_POST['property_fields'], basename(__FILE__) ) ) {
return $post_id;
}
$events_meta['property_name'] = esc_textarea( $_POST['property_name'] );
foreach ( $events_meta as $key => $value ) :
if ( 'revision' === $post->post_type ) {
return;
}
if ( get_post_meta( $post_id, $key, false ) ) {
update_post_meta( $post_id, $key, $value );
} else {
add_post_meta( $post_id, $key, $value);
}
if ( ! $value ) {
delete_post_meta( $post_id, $key );
}
endforeach;
}
add_action( 'save_post', 'property_save_meta', 1, 2 );
最后,我将<code>property_name</code>注册为rest字段:
function register_rest_fields() {
register_rest_field('property', 'property_name',
array(
'get_callback' => 'get_post_meta_cb',
'update_callback' => 'update_post_meta_cb',
'schema' => null
)
);
}
function get_post_meta_cb($object, $field_name, $request){
return get_post_meta($object['id'], $field_name, true);
}
function update_post_meta_cb($value, $object, $field_name){
if ( ! $value || ! is_string( $value ) ) {
return;
}
return update_term_meta( $object->ID, $field_name, $value );
}
add_action('rest_api_init', 'register_rest_fields');
在前端,我能够使用API获取“属性”帖子,并且property_name
字段在响应中正确显示。
我还可以轻松创建新帖子,但我无法设置<code>property_name</code>元字段值。
目前我正在尝试:
request(`${url}/wp-json/wp/v2/property`, {
method: "POST",
body:JSON.stringify({
title: 'Lorem ipsum dolor sit amet',
content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
status: 'publish',
meta: {
property_name: 'Testing'
}
})
});
(正如我在评论中指出的,)问题就在这里:
function update_post_meta_cb($value, $object, $field_name){
if ( ! $value || ! is_string( $value ) ) {
return;
}
return update_term_meta( $object->ID, $field_name, $value );
}
实际上,您正在保存post meta,但随后使用了<code>update_term_meta()
并且(我忘了说)要修复它,只需将update_term_meta()
替换为update_post_meta()
。;)
我正在使用的十二主题,我正在尝试输出下一个帖子和前一个帖子在底部的内页。 谢谢你。
我需要有一个对象,它与另一个对象完全相同,但具有不同的一周第一天(即:周日而不是周六)。 具体来说,我需要一个周日开始的阿拉伯埃及地区。我使用的日历控件只支持更改其区域设置,因此我需要它。
在Elasticsearch中,我想用我的自定义分析器索引一些字段。因此,首先,我将分析器添加到其他配置中 Liferay公司- 其他索引配置 覆盖类型映射 在Liferay Elasticsearch中添加此属性后,我重置了索引,重新启动了Liferay。Portal使用我的映射和分析器正确创建了一个新索引。然后我重新索引了我的文档。当我在Elasticsearch中搜索某物时,它会显示预期的结
问题内容: 一个项目需要大量使用以下Jackson注释组合。因此,有没有一种方法可以创建另一个注释来避免丑陋的复制/粘贴: 更新: 我已经尝试过了,但是没有成功:-( 问题答案: 使用解决问题:
问题内容: 历史上一直存在“ 如何在没有主要方法的情况下启动应用程序 ”的问题,大多数都沿用“ 您不能 ”的方式陈述。我注意到现在如何可以通过扩展来启动JavaFX应用程序。我一直在使用与相似的方法,但是在这种情况下,我始终将主要方法视为样板代码。因此,我再次开始寻找答案。 我找到了这个答案,将我们链接到可以学习如何创建自己的JVM启动器的地方,但不幸的是,该文章不再存在。我花了很长时间寻找可能暗
问题内容: 我可以像下面这样以编程方式创建简单的自定义viewForHeaderInSection。但是我想做更多复杂的事情,例如与不同的类连接,并像tableView单元格一样达到其属性。简而言之,我想看看我在做什么。 有没有人可以解释如何使用xib创建自定义tableView标头视图?我遇到过旧的Obj-C主题,但是我是Swift语言的新手。如果有人详细解释,那太好了。 1.问题: 按钮@IB