我的帖子有一个名为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
?
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/