WordPress插件 Advanced Custom Fields Pro 的PHP配置文件转化为JSON文件

来源:柚子科技 WordPress 主题、WordPress插件    date:2022-9-12    标签:,     WordPress主题themes插件plugins开发定制

Advanced Custom Fields 是一款非常强大的自定义字段插件,允许你自己添加多种形式的自定义字段类型,比如 Image、Checkbox、File、Text、Select、True / False、Link、Textarea 等等,可以集成为一个或多个面板,支持导出字段为 xml 或 php 代码,还可以集成到主题或插件里。你可以使用这个 wordpress 插件为页面、文章、分类、用户建立自定义字段。可以用这个插件创建一个网站设置的页面字段,可以用来自由编辑网站的标题、LOGO、banner,版权文字等等只要你想得到的都可以。

我们使用别人写好的主题修改自定义字段时,就需要将php文件转化为json然后读取到数据库中进行修改。

我们将 Advanced Custom Fields Pro 的配置 从 PHP 转化为 JSON 格式,具体步骤如下

新建一个插件

/wp-content/plugins 文件夹中新建一个文件名为:acf-php-to-json.php

<?php  /**   * Plugin Name: Convert ACF PHP to JSON   * Description: Convert Advanced Custom Fields Pro configuration from PHP to JSON.   */    namespace ConvertAcfPhpToJson;    /**   * Add submenu item under 'Custom Fields'   */  function admin_menu() {      add_submenu_page('edit.php?post_type=acf-field-group', 'Convert PHP fields to JSON', 'PHP to JSON', 'manage_options', 'acf-php-to-json', __NAMESPACE__ . '\admin_page');  }  add_action('admin_menu', __NAMESPACE__ . '\admin_menu', 20);    /**   * Output the admin page   */  function admin_page() {      ?>      <div class="wrap">          <h1>Convert PHP fields to JSON</h1>          <?php            if (!isset($_GET['continue']) || $_GET['continue'] !== 'true') {              admin_page_intro();          }          else {              admin_page_convert();          }          ?>      </div>      <?php  }    /**   * Output the introductory page   */  function admin_page_intro() {      $groups = get_groups_to_convert();        if (empty($groups)) {          echo '<p>No PHP field group configuration found. Nothing to convert.</p>';          return;      }      else {          echo sprintf('<p>%d field groups will be converted from PHP to JSON configuration.</p>', count($groups));          echo '<a href="edit.php?post_type=acf-field-group&page=acf-php-to-json&continue=true" class="button button-primary">Convert Field Groups</a>';      }  }    /**   * Convert the field groups and output the conversion page   */  function admin_page_convert() {      $groups = get_groups_to_convert();        echo sprintf('<p>Converting %d field groups from PHP to JSON configuration...</p>', count($groups));        echo '<ol>';      foreach ($groups as $group) {          if (convert_group($group)) {              echo sprintf('<li>Converted: <strong>%s</strong> (%s)</li>', $group['title'], $group['key']);          }          else {              echo sprintf('<li><strong>Failed to convert: %s</strong> (%s)</li>', $group['title'], $group['key']);          }      }      echo '</ol>';        echo '<p>Done. Now remove the PHP field group configuration.</p>';  }    /**   * Get the PHP field groups which will be converted.   *   * @return array   */  function get_groups_to_convert() {      $groups = acf_get_local_field_groups();      if (!$groups) return [];      return array_filter($groups, function($group) {          return $group['local'] == 'php';      });  }    /**   * Convert a field group to JSON   *   * @param array $group   * @return bool   */  function convert_group($group) {      $group['fields'] = acf_get_local_fields($group['key']);      return acf_write_json_field_group($group);  }

启用插件

再插件列表中启用插件 Convert ACF PHP to JSON

WordPress插件 Advanced Custom Fields Pro 的PHP配置文件转化为JSON文件

腾讯云限时秒杀【点击购买】

搬瓦工,CN2高速线路,1GB带宽,电信联通优化KVM,延迟低,速度快,建站稳定,搬瓦工BandwagonHost VPS优惠码BWH26FXH3HIQ,支持<支付宝> 【点击购买】!

Vultr$3.5日本节点,512M内存/500G流量/1G带宽,电信联通优化,延迟低,速度快【点击购买】!

阿里云香港、新加坡VPS/1核/1G/25G SSD/1T流量/30M带宽/年付¥288【点击购买】