Вышел ACF 5.11

Рейтинг: 4.9 из 70 оценок

Наш следующий мажорный выпуск Advanced Custom Fields уже широко доступен. ACF версии 5.11 включает в себя несколько интересных улучшений, ориентированных на разработчиков.

Поддержка WP REST API

Самым большим дополнением в этом выпуске является поддержка пользовательских полей ACF в WordPress REST API.

До сих пор значения полей ACF не могли просматриваться или редактироваться через WP REST API без использования кастомного кода или другого плагина. В этом выпуске поддержка WP REST API встроена в группы полей ACF одним щелчком переключателя. Это означает, что значения полей ACF теперь могут быть доступны через существующие конечные точки (эндпоинты) для объектов контента WordPress, таких как Записи, Страницы, Пользовательские типы записей (CPT) и Пользователи.

Это дает сайтам с ACF безграничные возможности с WP REST API. Допустим, у вас есть сайт автосалона, который использует пользовательский тип записей для автомобилей, обогащенный ACF-полями для марки, модели, объема двигателя, цвета и т. д. Если сторонним сервисам нужен доступ к этим данным, вы можете предоставить ссылку на конечную точку WP REST API, которая вернет данные в формате JSON для использования этими сервисами:

https://cranfordcars.com/wp-json/wp/v2/cars/
{
  "id": 65,
  "date": "2021-11-10T08:26:55",
  "date_gmt": "2021-11-10T08:26:55",
  "guid": {
    "rendered": "https://cranfordcars.com/?post_type=cars&p=65"
  },
  "modified": "2021-11-10T08:26:55",
  "modified_gmt": "2021-11-10T08:26:55",
  "slug": "bmw-320i",
  "status": "publish",
  "type": "cars",
  "link": "https://cranfordcars.com/cars/bmw-320i/",
  "title": {
    "rendered": "BMW 320i"
  },
  "content": {
    "rendered": "<p>The <b>BMW 3 Series</b> is a line of <a title=\"Compact executive car\" href=\"https://en.wikipedia.org/wiki/Compact_executive_car\">compact executive cars</a> manufactured by the German automaker <a title=\"BMW\" href=\"https://en.wikipedia.org/wiki/BMW\">BMW</a> since May 1975. It is the successor to the <a title=\"BMW 02 Series\" href=\"https://en.wikipedia.org/wiki/BMW_02_Series\">02 Series</a> and has been produced in seven different generations.</p>\n",
    "protected": false
  },
  "template": "",
  "acf": {
    "make": "BMW",
    "model": "320i",
    "engine_size": "2l",
    "color": "White"
  },
  "_links": {
    "self": [
      {
        "href": "https://cranfordcars.com/wp-json/wp/v2/cars/65"
      }
    ],
    "collection": [
      {
        "href": "https://cranfordcars.com/wp-json/wp/v2/cars"
      }
    ],
    "about": [
      {
        "href": "https://cranfordcars.com/wp-json/wp/v2/types/cars"
      }
    ],
    "wp:attachment": [
      {
        "href": "https://cranfordcars.com/wp-json/wp/v2/media?parent=65"
      }
    ],
    "curies": [
      {
        "name": "wp",
        "href": "https://api.w.org/{rel}",
        "templated": true
      }
    ]
  }
}

This also allows developers to build custom themes using React, Vue, or any other JavaScript library.

You can enable or disable specific field groups from being included in the REST API by toggling the “Show in REST API” option in the field group settings. The default for this setting is No, so you must toggle this to Yes if you want your field groups to show in the WP REST API.

Show in REST API field group setting.

Any custom field groups added to WordPress data like posts (including all custom post types), users, and categories (including all custom taxonomies), will be available in their respective WP REST API endpoints.

The ACF data is available when using the following request verbs on a valid WP REST API endpoint:

  1. GET requests – allow you to view ACF data.
  2. OPTIONS requests – allow you to view the schema for the ACF data.
  3. POST requests – allow you to update any ACF fields.

Due to the fact that POST requests allow you to manipulate your ACF data, you will be required to authenticate your POST requests, using one of the authentication methods available to WordPress.

You can find all the details on how the ACF integration for the WP REST API works in our WP REST API doc, including a list of available endpoints, details on how to authenticate your POST requests, and full code examples.

REST API support is available in both the ACF and ACF PRO plugins.

License Key Improvements

One common request we’ve seen from users is the ability to define the ACF PRO license key in code rather than storing it in the WordPress database. This is an option we have enabled for all our WordPress plugins, so it made sense to add it to ACF.

ACF will now look for and use a PHP constant named ACF_PRO_LICENSE, which you can define with your license key.

define('ACF_PRO_LICENSE', 'yourkeyhere' );

This can be done in the wp-config.php file or any other file that WordPress runs before it loads the ACF PRO plugin. For more details, check out our guide on how to activate the ACF PRO plugin.

Security Fixes, Improvements, and Bug Fixes

We’re always looking at ways to improve the security and functionality of our products, and ACF is no exception. In this release we included the following improvements:

  1. Following the lead set by the WooCommerce team, we’ve removed all instances of the extract function and explicitly set the intended variables.
  2. We have improved security for AJAX user queries in ACF.
  3. We’ve fixed a bug where the .acf-block-preview wrapper didn’t appear when previewing a block in auto mode.

Developer Notes

Thanks to translation contributor Dariusz Zielonka for sending us updated Polish translation strings. ?

If you are interested in helping improve the translation of ACF into other languages, please let me know. ?

The acf_shortcode function has been updated so that ‘acf’ is passed as the $shortcode parameter to the shortcode_atts function. This enables an ACF specific filter, shortcode_atts_acf which allows developers to filter shortcode attributes.

add_filter( "shortcode_atts_acf", function( $out, $pairs, $atts, $shortcode ) {
        // we're in the context of an acf shortcode
}, 10, 4 );

WordPress Blocks API v2 Updates

In ACF 5.10, we moved to support version 2 of the WordPress Blocks API included in WordPress 5.6. The goal was to support more advanced functionality such as the ability to use the Block Editor’s extraProps filter. Unfortunately, our implementation of this triggered re-rendering of ACF blocks any time a property changed, which caused issues with other block editor features such as block styles and the built-in spacing/padding support.

ACF 5.11 removes support of the extraProps functionality to prevent these re-renders. This will improve performance and solve issues with block styles.

We want ACF blocks to function as closely as possible to core or custom-built WordPress blocks. Therefore we’re working on re-introducing support for this in an upcoming release. Doing so will change the structure of ACF blocks to include an HTML wrapper outside of your template which can handle any extra props, spacing, and custom styles.

More Goodness

These are just the highlights of all the features, improvements, and bug fixes bundled in this release. To see a full list of all the updates, take a look at the changelog.

Internal Improvements

While there is plenty new and improved for you in this release, we’ve also been hard at work behind the scenes. Since the last release, we’ve implemented a series of code quality and testing improvements, which will help us build better and faster going forward.

  1. We refactored the existing test suites to use Codeception for unit testing and acceptance tests.
  2. The ACF integration with the WP REST API includes unit tests.
  3. The asset build scripts have been updated to use webpack and wp-scripts.
  4. All JavaScript code has been formatted to WordPress coding standards.

What’s Next?

As we wrap up our latest release, let’s take a look at what we have planned for the next one:

  1. Compatibility with WordPress 5.9, which is due to release on December 14th.
  2. Better support for v2 of the WordPress Blocks API and reintroducing support for the extraProps filter.
  3. Improvements to the Field Group editing experience.
  4. Database performance improvements.

Thanks to everyone in the ACF community who helped make this release possible. ?

Are you excited about ACF 5.11? What are you planning on doing with the WP REST API integration? Let us know on Twitter.

Читайте далее

Добавить комментарий