WordPress: obține valoarea meta după cheia meta
Cum să obții valoarea meta după cheia meta
Vreau să obțin valoarea după cheia meta. Iată ce am încercat până acum:
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => -1,
'meta_key' => 'picture_upload_1'
);
$dbResult = new WP_Query($args);
var_dump($dbResult);
dar nu primesc valoarea meta

WP_Query
selectează postări și nu valorile meta, motiv pentru care nu obții valoarea.
Poți folosi ID-ul postării returnat pentru a obține valoarea astfel:
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => 1,
'meta_key' => 'picture_upload_1'
);
$dbResult = new WP_Query($args);
global $post;
if ($dbResult->have_posts()){
$dbResult->the_post();
$value = get_post_meta($post->ID,'picture_upload_1',true);
}
Acest cod va obține valoarea meta a ultimei postări publicate care are un câmp personalizat numit picture_upload_1
.
O altă opțiune este să creezi o interogare personalizată, astfel:
global $wpdb;
$value = $wpdb->get_var( $wpdb->prepare("SELECT meta_value FROM $wpdb->postmeta WHERE meta_key = %s LIMIT 1" , $meta_key) );

Obțineți toate valorile meta_key de oriunde:
global $wpdb;
$meta_key = 'picture_upload_1';
$data = $wpdb->get_results($wpdb->prepare( "SELECT DISTINCT meta_value FROM $wpdb->postmeta WHERE meta_key = %s", $meta_key) , ARRAY_N );
$result = [];
foreach($data as $array){
$result[] = $array[0];
}
print_r($result);

Ai putea lua în considerare stocarea valorii în tabelul wp_options
în loc de wp_postmetas
.
Astfel, ai putea utiliza get_option
cu cheia personalizată pentru a seta și prelua valoarea ta.
https://developer.wordpress.org/reference/functions/get_option/
