web-dev-qa-db-ja.com

シリアル化された投稿メタを更新する方法

私はpost metaをシリアライズしました。そして私は単一のメタキーを更新したいのです。それはこのように見えます:

enter image description here 

配列では:

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

'option3'のみを'Peach'に更新したいので、 update_post_meta functionを使用しています。

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

しかし、私は何をmeta_valueセクションに入れなければならないのかわかりません。 Peach をプッシュすると、すべてのメタキーを Peach に変更します。

1
bilimokur

最初にカスタムフィールドthemeOpsを読み込み、配列のインデックスoption3を更新してから、配列全体を保存/更新する必要があります。

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

更新 (カスタムフィールドで並べ替え)

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

Codex にある他の例

4
nmr