Php 在前端使用WPAlchemy重复字段

Php 在前端使用WPAlchemy重复字段,php,wordpress,repeat,Php,Wordpress,Repeat,我正在使用WPAlchemy为我的自定义帖子类型创建元数据 我的一个自定义帖子类型,vendor,在WPAlchemy中声明为$vendor\u mb,前缀为\u vendor,并具有以下元字段 地址 国家 Zipcode 网站 联系人因为WP Alchemy将数据存储为序列化数组,所以您必须做一些奇怪的事情来准备插入重复字段 本文详细介绍了您需要执行的操作: 简而言之,您需要插入一个序列化数组,然后分别插入每个元值,如下所示: //add a serialised array for wp

我正在使用WPAlchemy为我的自定义帖子类型创建元数据

我的一个自定义帖子类型,vendor,在WPAlchemy中声明为$vendor\u mb,前缀为\u vendor,并具有以下元字段

  • 地址
  • 国家
  • Zipcode
  • 网站

  • 联系人因为WP Alchemy将数据存储为序列化数组,所以您必须做一些奇怪的事情来准备插入重复字段

    本文详细介绍了您需要执行的操作:

    简而言之,您需要插入一个序列化数组,然后分别插入每个元值,如下所示:

     //add a serialised array for wpalchemy to work
    $data = array('reviews_what_we_did','reviews_star_rating','reviews_name','reviews_email','reviews_staff_member');
    $str = $data;
    update_post_meta( $pid, '_single_reviews_meta_fields', $str );
    
    //update the individual fields
    add_post_meta($pid, 'reviews_what_we_did', $service);
    add_post_meta($pid, 'reviews_star_rating', $rating);
    add_post_meta($pid, 'reviews_name', $name);
    add_post_meta($pid, 'reviews_email', $email);
    add_post_meta($pid, 'reviews_staff_member', $staff);
    
    $fields = array('address', 'country', 'zipcode', 'website', 'contacts');
    $str = $fields;
    update_post_meta( $postid, '_contact_meta_fields', $str );
    
    $contactfields = array(
    array(
    'department' => $departmentvalue,
    'firstname' => $firstnamevalue,
    'lastname'  => $lastnamevalue,
    'title' => $titlevalue,  // etc. - add all of your fields to the array
    )
    );
    
    add_post_meta($postid, 'address', $addressvalue); // do this for each of your non-repeating fields
    add_post_meta($postid, 'contacts', $contactfields); // this adds the repeating fields
    
    但是,此代码段仅适用于普通字段,不适用于重复字段。重复的字段增加了另一层复杂性

    本文介绍如何将数据插入重复字段:

    在您的情况下,您需要执行以下操作:

     //add a serialised array for wpalchemy to work
    $data = array('reviews_what_we_did','reviews_star_rating','reviews_name','reviews_email','reviews_staff_member');
    $str = $data;
    update_post_meta( $pid, '_single_reviews_meta_fields', $str );
    
    //update the individual fields
    add_post_meta($pid, 'reviews_what_we_did', $service);
    add_post_meta($pid, 'reviews_star_rating', $rating);
    add_post_meta($pid, 'reviews_name', $name);
    add_post_meta($pid, 'reviews_email', $email);
    add_post_meta($pid, 'reviews_staff_member', $staff);
    
    $fields = array('address', 'country', 'zipcode', 'website', 'contacts');
    $str = $fields;
    update_post_meta( $postid, '_contact_meta_fields', $str );
    
    $contactfields = array(
    array(
    'department' => $departmentvalue,
    'firstname' => $firstnamevalue,
    'lastname'  => $lastnamevalue,
    'title' => $titlevalue,  // etc. - add all of your fields to the array
    )
    );
    
    add_post_meta($postid, 'address', $addressvalue); // do this for each of your non-repeating fields
    add_post_meta($postid, 'contacts', $contactfields); // this adds the repeating fields
    
    打印post meta非常有用,这样您就可以看到WPAlchemy如何创建序列化数组以及每个meta值