我只想为此查询返回一个值,它位于functions.php
文件这样做的目的是返回一个我需要的值post_meta
已更新。返回相同(正确)值的次数为5次。。。我只希望该值返回一次。
add_action( \'added_post_meta\',
function ( $mid, $object_id, $meta_key, $_meta_value) {
global $wpdb;
$table_name = $wpdb->prefix . \'postmeta\';
$results = $wpdb->get_var(
"SELECT meta_value FROM " . $table_name .
" WHERE meta_key = \'data19\' AND post_id = " .$object_id. " " );
},
10, 4 );
你知道如何只返回一个值吗?我尝试过:
添加Group by
最后添加OBJECT_K
最后,使用SELECT DISTINCT
使用MAX
在每个值之前使用FIRST
在每个值之前使用wp_reset_query()
我甚至想不起来还有更多。
最合适的回答,由SO网友:Matt van Andel 整理而成
最可能的原因是挂钩可能运行了多次(例如,每个元字段一次)。您可能需要像这样限定/筛选您的函数…
add_action( \'added_post_meta\', function ( $mid, $object_id, $meta_key, $_meta_value) {
global $wpdb;
if ( $meta_key != \'data19\' ) {
return;
}
$table_name = $wpdb->prefix . \'postmeta\';
$results = $wpdb->get_var(
"SELECT meta_value FROM " . $table_name .
" WHERE meta_key = \'data19\' AND post_id = " .$object_id. " " );
}, 10, 4 );