关于最初的问题,您是否确定插件正在注册api可用的字段?这个register_meta
需求show_in_rest => true
已分配。
此外,CPT需要custom-fields
在其支架阵列中,\'supports\' => array(\'title\',\'editor\',\'thumbnail\',\'custom-fields\')
使其在访问CPTs api端点时可用。
我在回答另一个问题时谈到了这一点(包括链接等):https://wordpress.stackexchange.com/a/266277/118366
如果缺少这些值中的任何一个,您可以挂接以添加它们,甚至完全覆盖这些函数。只是一个想法。
我正在考虑编写一个基本的PHP页面,该页面将采用产品ID,使用WordPress函数找到正确的元记录,并通过将发布的JSON转换为序列化数组来更新数据,但我对PHP还不够熟悉,无法做到这一点
为此,请查看json\\U解码和json\\U编码。您可以使用json\\u decode将assoc参数设置为true,并获取数组而不是对象。
一个(未测试的)快速示例函数,用于检索一些json并将解码结果设置为变量:
$json = file_get_contents(\'PATH/TO/FILE.json\');
function the_json_contents($json_to_get){
$json_in_array = json_decode($json_to_get, true); //json string to array
return $json_in_array;
}
function do_stuff_do_json() {
$json_array = the_json_contents($json);
foreach($json_array[\'id\'] as $js) { //assuming we have an \'id\' key
$somevariable = $js[\'someKey\'];
$somevariable2 = $js[\'someOtherKey\'];
}
}
但是,有没有关于如何开始这项工作的示例或想法,或者有没有更好的方法来更新我的元数据?
自定义路由和端点可能是实现这一点的最有效方法(假设不仅仅是插件没有向api公开这些项,如顶部所述)。您仍然需要考虑nonce检查和其他可能的身份验证,这取决于您使用端点的方式。Routes and Endpoints 和Custom Endpoints 是您在api文档中查找的内容;可能Controller Classes, 也
同样,我会检查插件,看看它是否为最初提到的api注册了元字段。