web-dev-qa-db-fra.com

Comment mettre à jour la publication méta sérialisée?

J'ai sérialisé post meta. Et je veux mettre à jour une seule clé méta. Cela ressemble à ceci:

 enter image description here 

Dans le tableau:

$kisiArray = array(
   'option1' => 'foo',
   'option2' => 'bar',
   'option3' => 'Apple',
   'option4' => 'orange'
);

Je veux mettre à jour uniquement 'option3' à 'Peach' donc j'utilise update_post_meta function.

update_post_meta( $post_id, 'themeOps', ??? );

Mais je ne sais pas ce que je dois mettre dans la section meta_value. Lorsque i pust Peach , toutes les clés méta sont modifiées en Peach .

1
bilimokur

Vous devez d'abord lire le champ personnalisé themeOps, mettre à jour l'index option3 dans un tableau, puis enregistrer/mettre à jour tout le tableau.

$kisiArray = get_post_meta( $post_id, 'themeOps' );
$kisiArray['option3'] = 'Peach';
update_post_meta( $post_id, 'themeOps', $kisiArray );

Update (trier par champ personnalisé)

$args = array(
    'post_type'  => 'post',
    'meta_key'   => 'themeOps_option3',
    'orderby'    => 'meta_value_num',
    'order'      => 'ASC',
);
$query = new WP_Query( $args );

Vous trouverez d'autres exemples dans Codex

4
nmr