0

Meta Box wordpress プラグインをインストールし、オプションtextでフィールド メタ ボックスを作成しました。clone

add_action( 'admin_init', 'rw_register_meta_boxes' );
function rw_register_meta_boxes()
{
    $meta_boxes = array();
    $meta_boxes[] = array(
            'id'    => 'vip',
            'title'    => 'VIP Links',
            'pages'    => array( 'post'),
            'fields' => array(
                array(
                    'name'  => 'Download links',
                    'id'    => "vip",
                    'desc'  => 'Type here',
                    'type'  => 'text',
                    'std'   => '',
                    'size' => 100,
                    'clone' => true,
                ),
            ),
            'validation' => array(
                'rules' => array(
                    "vip" => array(
                        'required'  => false,
                    ),
                )
            )
        );
    foreach ( $meta_boxes as $meta_box )
    {
        new RW_Meta_Box( $meta_box );
    }
}

それは動作し、メタ ボックスが追加されます。しかし、問題は、公開後に値に対していくつかの作業を行い、メタ ボックスの値を更新する必要があることです。

$VIP = get_post_meta($pid, 'vip', false);
/*
    do some operations here
 */
update_post_meta($pid, 'vip', $NEW_VIP);

このスニペットは、公開後に呼び出される関数内にあります。add_action('publish_post', 'function_name');

しかし、それは更新されません!関数が実行されるかどうか、およびどの値$NEW_VIPが含まれているかを確認しようとしました。だから私はupdate_post_meta()自分自身を保証するために関数の前に行を追加しました:

print_r($NEW_VIP); die();

出力は期待どおりで、$NEW_VIP正しい値 (配列) を持っていますがupdate_post_meta、保存されず、メタ ボックスの値は常に変更できません。

どんな助けでも本当に感謝します。

4

0 に答える 0