我对PHP不太了解,但是我需要写几行代码以向WordPress中我的API响应添加自定义键:
<?php
$customFields = array("maker", "model", "ou", "prod_year", "barrel_length", "stock", "stock_length", "ejector", "links",
"chokes", "condition", "original_case", "price");
function rest_get_post_field( $post, $field_name, $request ) {
return get_post_meta( $post[ 'id' ], $field_name, true );
}
add_action( 'rest_api_init', 'add_custom_fields' );
function add_custom_fields(){
foreach($customFields as $field) {
register_rest_field( 'post',$field,
array(
'get_callback' => 'rest_get_post_field',
'update_callback' => null,
'schema' => null,)
);
}
}
?>
上面的代码不起作用。首先,我要为每个自定义字段调用register_rest_field
方法,例如:
function add_custom_fields(){
register_rest_field( 'post','maker',
array(
'get_callback' => 'rest_get_post_field',
'update_callback' => null,
'schema' => null,)
);
我已经对此进行了测试,并且可以正常工作。但是,创建一个包含自定义字段名称的字符串数组,然后在它们上循环似乎是一种更好的解决方案,只需更少的代码行。有没有办法使这项工作?谢谢。
答案 0 :(得分:1)
由于您的import numpy
import matplotlib.pyplot as plt
arr = numpy.array([0.5, 0.1, 0.05, 0.67, 0.8, 0.9, 1, 0.22, 0.25])
y, other_stuff = numpy.histogram(arr, bins=numpy.linspace(0, 1, 6))
graph = plt.bar(numpy.linspace(0.1, 0.9, 5), height=y, width=0.2,
edgecolor='black')
plt.show()
变量不是全局变量,因此该函数会将其解释为null。您需要将自定义键数组作为函数的参数传递。
customFields
然后,在您的add_action函数中,您需要传递一个参数。
function add_custom_fields($fields)
{
foreach($fields as $field) {
register_rest_field( 'post',$field,
array(
'get_callback' => 'rest_get_post_field',
'update_callback' => null,
'schema' => null,)
);
}
}
最后,调用do_action函数,将add_action('rest_api_init', 'add_custom_fields', 10, 1);
变量指定为函数的参数。
customFields
查看更多信息:Function arguments。
或者(如果需要的话),只需在函数中定义自定义键数组即可。
do_action('rest_api_init', $customFields)