ACF plugin and field update

时间:2016-10-22 作者:Fafanellu

我的帖子有一个名为curnumber, 使用ACF插件创建。此ACF可以是一个发行号(例如,对于杂志)。假设当前问题为#788。现在,我想检索数据库中最新的问题。我会使用这样的查询:

$query = "
SELECT MAX(cast(meta_value AS unsigned)) 
FROM rkji_postmeta 
WHERE meta_key = \'curnumber\'
";
$maxnum = $wpdb->get_var($query);
$maxnum 将是:788。

比方说,我犯了一个错误,现在我把我在岗位上的ACF改为787。如果我再次运行查询,结果总是788。

我查看了数据库,发现创建帖子时,如果有自定义字段postmeta 表中有2条新记录,其中2条不同meta-id s、 虽然他们共享相同的post_id. 当ACF更改时,只有一条记录会随着ACF设置为新值而更改。因此,最早的值始终保留在db中。可能是由于Wordpress的修订机制。。。不管怎样,我该怎么办?可能会验证post是否设置为publish ?

1 个回复
SO网友:Mihai Papuc

据我所知,您正试图在新帖子上更新ACF字段。根据我的经验,在ACF函数中最好使用字段键而不是字段名-使用字段名会使您在各种奇怪的情况下都会遇到,就像您现在遇到的情况一样。

<?php update_field($selector, $value, $post_id); ?>
$selector (string) the field name or key (required)
$value (mixed) the value to save (required)
$post_id (mixed) Specific post ID where your value was entered.
 Defaults to current post ID (not required). 
 This can also be options / taxonomies / users / etc

https://www.advancedcustomfields.com/resources/update_field/

要获取ACF字段的字段键,请转到自定义字段-字段集-屏幕选项(右上角)-显示字段键=是

请参阅以下有关在ACF中获取字段键的简短教程:http://thestizmedia.com/show-field-keys-acf-pro/

相关推荐

$wpdb->get_row返回什么?

由于插件中的调试和错误查找,我有一个简短的问题。$wpdb->;如果没有结果,返回get\\u row()?文件说明:(array|object|null|void) Database query result in format specified by $output or null on failure. 但当查看源代码时,它似乎返回了;null“;。。。如果您能快速提供帮助,我将不胜感激,我一直认为它会返回一个空数组,但我可能弄错了!