CMB2

Descrición

CMB2 é un kit de ferramentas para desenvolvedores para crear metaboxes, campos personalizados e formularios para WordPress que te deixará abraiado. Xestiona facilmente os metadatos de entradas, termos, usuarios, comentarios, ou crea páxinas de opcións personalizadas.

CMB2 é unha reescritura completa de Custom Metaboxes and Fields para WordPress. Para comezar, segue os exemplos do arquivo example-functions.php incluído e bota un ollo ás instrucións de uso básico.

Podes ver a lista de tipos de campo dispoñibles aquí.

Contribución

O desenvolvemento realízase en Github e todas as contribucións son benvidas. Le o documento CONTRIBUTING para obter máis detalles.

Atoparás a lista completa de todos os nosos incribles colaboradores aquí: github.com/CMB2/CMB2/graphs/contributors

Características:

Tradución

Se queres achegar arquivos de tradución, fai o a través de WordPress Plugin Translations.

Documentación

  • A documentación de CMB2 atópase na wiki de CMB2 en github. Ademais, se che gusta ler código e documentación integrada, procuramos que todas as funcións e métodos estean totalmente documentados no propio código.

Recursos de terceiros

Custom Field Types

Other Helpful Resources

  • CMB2 WooCommerce HPOS Orders: engade a capacidade de engadir campos personalizados á nova páxina de pedidos HPOS de WooCommerce.
  • CMB2 Admin Extension: engade unha interface para crear metaboxes de CMB2 desde o administrador de WordPress. Tamén en wordpress.org.
  • WordPress Shortcode Button: usa campos de CMB2 para xerar campos para as ventás emerxentes de entrada de shortcodes.
  • WDS-Simple-Page-Builder: usa partes de modelo existentes do tema activo para crear unha páxina personalizada con elementos reordenables. Creado con CMB2.
  • CMB2 Example Theme: demostra como incluír CMB2 no teu tema, ademais de algúns consellos e trucos interesantes.
  • facetwp-cmb2: integración de FacetWP con CMB2.
  • CMB2-grid de origgami: un sistema de cuadrícula para a biblioteca CMB2 de WordPress que permite crear columnas para unha mellor disposición no administrador.
  • CMB2 Metatabs Options de rogerlos: CMO facilita a creación de páxinas de opcións con varios metaboxes e pestanas opcionais no administrador de WordPress.
  • CMB2 Conditionals de jcchavezs: permite aos desenvolvedores relacionar campos para que a visualización dun dependa do valor doutro.
  • CMB2 Metabox Code Generator de willthemoor: sáltate as partes aburridas. Usa este xerador para crear facilmente metaboxes de CMB2 totalmente funcionais. Agora con entrada en masa!
  • Caldera Metaplate de CalderaWP: non é específico de CMB2, pero permite crear modelos para mostrar os teus campos personalizados.
  • Yoast CMB2 Field Analysis WP Plugin de alexis-magina: este plugin engade un método baseado en js para recalcular as puntuacións de contido de Yoast SEO ao actualizar o contido dunha páxina, en concreto dos campos meta personalizados engadidos mediante a biblioteca CMB2.
  • Skeleton de awethemes: un framework completo para WordPress que usa o motor de CMB2.
  • WP Simple Iconfonts de awethemes: un xestor de fontes de iconas que ofrece un selector de iconas de fonte para CMB2.
  • CMB2 Nav Menus de nsrosenqvist: permíteche usar CMB2 nas entradas dos menús de navegación.

Vínculos

Ver CHANGELOG

Problemas coñecidos

  • Un metabox que conteña un editor WYSIWYG non se pode mover nin usar de xeito repetible polo de agora (é un problema de TinyMCE).
  • Non todos os campos funcionan ben nun grupo repetible.

Instalación

Se instalas o plugin desde wordpress.org:

  1. Sube todo o directorio /CMB2 ao directorio /wp-content/plugins/.
  2. Activa CMB2 a través do menú «Plugins» de WordPress.
  3. Copia (e renomea se o desexas) example-functions.php no directorio do teu tema ou plugin.
  4. Edita para incluír só os campos que necesites e renomea as funcións.
  5. Beneficio.

Se inclúes a biblioteca no teu plugin ou tema:

  1. Coloca o directorio CMB dentro do teu tema ou plugin.
  2. Copia (e renomea se o desexas) example-functions.php nun cartafol por riba do directorio CMB OU copia todo o seu contido no arquivo functions.php do teu tema.
  3. Edita para incluír só os campos que necesites e renomea as funcións (o cartafol CMB debe quedar sen editar para poder actualizar a biblioteca facilmente).
  4. Beneficio.

Preguntas frecuentes

As FAQ adoitan acabar na wiki de github.

Comentarios

1 de Maio de 2025
Thank you for your hard work!One of the best plugin for developers. Simple and effective.
3 de Abril de 2024 1 resposta
I love CMB2. I love hooking into functions and extending addons so fields update each other intelligently, while locking out non-admins to sections. Blocks are great, don’t get me wrong, and the extensions to make the, more hookable and meta-integrated is nice, but CMB2 gives you full and complete control, with API documented and dozens of add on plugins out there. Using FacetWP? We have an add on! Need to attach posts? We have an add on? Want to use Shadow Taxonomies to connect posts instead of attaching them and somehow manage to do so dynamically and speedily? Hey buddy. They’ve got you. The power is yours to command. Seeing even a version-matching-tested-up-to update makes me worry far less that this plugin will fall by the wayside. Up next? PHP 8 compat (I hope…)
22 de Novembro de 2023
…easy to use, nice metaboxes for all post types
Ler todas as 91 opinións

Colaboradores e desenvolvedores

“CMB2” é un software de código aberto. As seguintes persoas colaboraron con este plugin.

Colaboradores

“CMB2” foi traducido a 21 idiomas. Grazas aos desenvolvedores polas súas contribucións.

Traduce “CMB2” ao teu idioma.

Interesado no desenvolvemento?

Revisa o código, bota unha ollada aorepositorio SVN, ou subscríbete ao log de desenvolvemento por RSS.

Rexistro de cambios

2.13.2

Corrección de fallos

  • Escapáronse os valores almacenados nas visualizacións de campo por defecto, incluídas as columnas de administración e a saída display_cb da parte pública. O HTML almacenado nas visualizacións por defecto de text e text_money agora aparece como texto. textarea_code conserva o código fonte visible e usa <pre class="cmb2-code"> no lugar de <xmp class="cmb2-code">; as integracións que seleccionen o elemento antigo deben actualizar o seu selector. O código fonte válido non se modifica no almacenamento, mentres que os valores non escalares inesperados descártanse ao gardar para evitar erros de PHP. Grazas a Kuba (a través de Wordfence).

2.13.1

Melloras

  • Probado ata WordPress 7.1.

Corrección de fallos

  • Saneáronse e escapáronse os valores do campo file_list, que antes se almacenaban e mostraban tal cal. As claves do array deben ser agora ID de adxuntos enteiros positivos, e as URL saneanse cos protocols do campo ao gardar e ao mostrar. As entradas cunha clave mal formada (incluídas 0 e as claves de listas posicionais) ou cunha URL que se sanea a baleiro elimínanse a próxima vez que se garde o campo. Grazas a Ivaylo (a través de Wordfence).
  • Corrixido un TypeError de PHP 8 ao mostrar un campo file_list que contiña un valor non escalar.
  • Engadiuse un sanitize_callback ao axuste da páxina de opcións que rexistra CMB2, que o Plugin Check de wp.org esixe a cada chamada a register_setting(). É un paso directo por deseño: os valores xa se sanean segundo o tipo de campo antes de gardar a opción. Grazas a @rubengc (#1533).
  • Eliminados os arquivos de tradución en@pirate, cuxo @ no nome do arquivo falla as comprobacións de envío de plugins de wp.org para calquera plugin que inclúa CMB2. Grazas a @rubengc (#1533).

2.13.0

Melloras

  • Engadiuse unha propiedade de caixa rest_read_capability (tamén aceptada como parámetro de campo) que declara quen pode ler unha caixa, ou un só campo dela, a través da API REST de CMB2. Os valores lense en inglés claro: false significa ninguén, true significa todo o mundo (incluídos os visitantes sen sesión iniciada), 'box-capability' significa quen teña o parámetro capability da propia caixa, e calquera outra cadea de capacidade significa quen teña esa capacidade, p. ex. 'edit_posts'. Aplícase en cascada campo caixa valor por defecto do mesmo xeito que show_in_rest, e os filtros existentes cmb2_api_get_box_permissions_check/cmb2_api_get_field_permissions_check seguen executándose despois e teñen a última palabra. Consulta REST API Read Permissions (#1563).
  • Engadiuse un filtro cmb2_rest_enforce_options_page_read_permissions para todo o sitio que aliña as lecturas REST das caixas de páxinas de opcións coa convención de axustes/opcións do núcleo de WordPress, condicionándoas á capability da caixa en lugar de ofrecelas publicamente. Por defecto é false, o que preserva o comportamento actual de CMB2, e só se consulta para as caixas que non declararon un rest_read_capability. Consulta REST API Read Permissions (#1563).
  • Engadiuse un aviso de administración descartable para os sitios que rexistran unha caixa de páxina de opcións lexible por REST e que non declararon un rest_read_capability nela nin activaron o filtro anterior. Ligaza coa guía REST API Read Permissions para que eses sitios poidan elixir o axuste que desexen antes dun cambio posterior do valor por defecto (#1563).
  • [Development] Engadiuse unha política de seguridade SECURITY.md e activouse o informe privado de vulnerabilidades de GitHub, o que ofrece aos investigadores un canal privado que non depende da entrega de correo electrónico.

Corrección de fallos

  • Aliñáronse as comprobacións de permisos do controlador AJAX de oEmbed cos outros camiños de escritura de CMB2: agora o controlador require que quen chama teña dereitos sobre o obxecto co que se almacena en caché o resultado da incrustación (edit_post, edit_user, edit_comment, o edit_terms da taxonomía ou, para un destino de páxina de opcións, a capability da caixa que declarou esa clave de opción) en lugar de depender só do nonce, e sanea o tipo de obxecto solicitado. Grazas a Mutantgun (#1563).
  • Corrixido que CMB2_Base::maybe_hook_parameter() convertese o valor por defecto dun chamador nun parámetro declarado da caixa/campo. Pasaba o valor por defecto a prop(), que almacena en caché no obxecto un valor alternativo verdadeiro, polo que o valor por defecto dunha solicitude persistía como parámetro real en todas as chamadas posteriores. Agora só se consulta un parámetro declarado (#1563).
  • Saneouse a entrada field_id (cunha protección isset()) e escapouse o atributo rel no controlador AJAX de oEmbed, abordando un vector de XSS reflectido detectado por WordPress Plugin Check. Grazas a @thisismyurl (#1559).
  • Escapouse con esc_attr() o ID do metabox na saída do formulario da páxina de opcións e o ID do campo no envoltorio de campos repetibles (atributos id e data-selector), resolvendo a saída de atributos HTML sen escapar detectada polos WordPress Coding Standards. Grazas a @thisismyurl (#1560).

2.12.0

Melloras

  • Confirmouse a compatibilidade con PHP 8.2 e 8.3, e probado ata WordPress 7.0.
  • [Development] Migráronse as probas de extremo a extremo de Cypress a Playwright e substituíuse Grunt por scripts de npm para o proceso de compilación de recursos. (#1550).
  • [Development] Trasladouse o contorno local de desenvolvemento e probas a @wordpress/env (wp-env) con portos fixos, executando PHPUnit e Playwright a través del. (#1554, #1558).
  • [Development] Substituíuse Travis CI por GitHub Actions, engadiuse unha comprobación de PHPCompatibility (PHP 7.4+) e un control de lint PHPCS/WPCS, e renovouse install-wp-tests.sh para o WordPress moderno. (#1555).

Corrección de fallos

  • Corrixida unha obsolescencia de PHP 8.1+ ao sanear un campo baseado en textarea baleiro (pasar null a wp_kses_post()). Grazas a @baljindersingh88 (#1537).
  • Corrixida a desincronización do valor do iterador de fila entre o atributo data e os datos de jQuery ao reordenar as filas dun grupo repetible. Grazas a @angryaxi (#1518).
  • Corrixida unha obsolescencia de ltrim() de PHP 8.3 na visualización do campo de taxonomía.
  • Reforzouse contra as obsolescencias de propiedades dinámicas de PHP 8.2+ ampliando #[AllowDynamicProperties] ás clases raíz.
  • Eliminouse unha regra de fondo ao recibir o foco nas entradas de .cmb2-wrap que causaba un estilo inesperado nas entradas. Corrixe #1556/wordpress.org/support/topic/weird-checkbox-behaviour-on-wp-7 (#1557).

2.11.0

Melloras

  • Actualizacións de paquetes.
  • Actualizada a etiqueta «Tested up to» de WordPress á 6.1. Grazas a @RubenMartins (#1477).
  • Engadidos filtros para establecer object_id e mb_object_type e en do_scripts, que permiten a substitución por plugins/bibliotecas. (Engadido para dar soporte á nova extensión CMB2 WooCommerce HPOS Orders)
  • Engadido un gancho cmb2_init_hooks cando se chama a hookup.
  • Abordáronse algunhas preocupacións de seguridade co proceso de deserialización dos valores serializados almacenados do campo DateTime (só para o tipo de campo text_datetime_timestamp_timezone). (#1510)
  • [Development] Algunhas melloras nos scripts de compilación.
  • [Development] Engadida algunha configuración de PHPCS/WPCS.
  • [Development] Engadida unha acción phpcompatibility. Grazas a @jazzsequence (#1499, #1500).

Corrección de fallos

  • Corrixe algúns problemas de line-height cos botóns de dashicon. Corrixe [#1443](
  • Corrixe o problema polo que unha imaxe podía anexarse ao grupo incorrecto tras eliminar o grupo anterior. (#1473)
  • Corrixe o problema polo que Seleccionar todo/Anular selección de todo non activaba os eventos JS DOM de cambio. Corrixe #1504.

2.10.1

Corrección de fallos

  • Corrixe un problema co formato do selector de datas. Corrixe #1448.

2.10.0

Melloras

  • Saneadas as URL, con https por defecto. Grazas a @paulschreiber (#1413).
  • Establecidas as probas E2E con Cypress. Grazas a @markjaquith (#1437).
  • Actualizouse a funcionalidade JS shiftRows para que sexa máis sinxela, e corrixíronse problemas coa inicialización de JS. Corrixe #1426 e #1431.
  • Actualizáronse varias dependencias de NPM por problemas de seguridade.

Corrección de fallos

  • Actualización para evitar o aviso de obsolescencia: Required parameter $i follows optional parameter $args…. Grazas a @carloswph (#1417).
  • Fai que cada campo de data sexa máis resistente a varios valores de data/marca de tempo pasados (desde a API REST).

2.9.0

Melloras

  • Engadido o filtro cmb2_tab_group_tabs para engadir URL arbitrarias de páxinas de menú ás pestanas de cmb2, e movida a saída do marcado das pestanas a un método separado, CMB2_Options_Hookup::options_page_tab_nav_output(). Corrixe #1407.
  • Limitado o uso de cursiva, incluíndo a súa eliminación das descricións dos campos. Corrixe #1404.
  • Engadido á lista de tipos de imaxe válidos de get_allowed_mime_types(), o que fai os SVG máis fiables ao usar o plugin Safe SVG. Corrixe #1223.

Corrección de fallos

  • Corrixe advertencias de PHP no ColorPicker repetible cun array como valor por defecto. Grazas a @rubengc (#1340).
  • Abordados os problemas de compatibilidade con PHP 7.4 con func_get_args(). Corrixe #1389.
  • Mellor clave de array xerada para os campos en caché, corrixe o problema de que se atopaba o campo incorrecto. Corrixe #14053.
  • Corrixe o problema de que as páxinas de opcións se rexistraban cunha prioridade de gancho de 5 en lugar da 10 por defecto, o que causaba algúns problemas de retrocompatibilidade. Corrixe #1410.

2.8.0

Melloras

  • Engadido o arquivo CODE_OF_CONDUCT.md para cumprir os estándares da comunidade de GitHub. Grazas a @RubenMartins (#1331).
  • Engadida a capacidade de definir a prioridade do gancho do menú de administración de rexistro de páxina para as páxinas de opcións. Corrixe #1380.

Corrección de fallos

  • Asegúrase de que enqueue wp-color-picker se pon en cola para os campos de cor. Grazas a @rubengc (#1339).
  • Corrixidos os atributos name/id baleiros nos botóns de 'file_list'. Grazas a @pgroot91 (#1347).
  • Corrixido que o tipo de campo wysiwyg non funcionase nun grupo, asegurando que os scripts se poñen en cola correctamente. Grazas a @yoren (#1361).
  • Corrixidos os tipos de $object_id nos bloques de documentación de helper-functions.php. Corrixe #1365.
  • Corrixidos os interruptores de Metabox que se vían rotos con WP 5.5.x. Corrixe #1382.
  • Corrixido PHP Deprecated: Required parameter $field_id follows optional parameter $type, debido aos cambios de PHP 8.0. Corrixe #1396.
  • Corrixido o aviso de PHP causado polo método deprecated_param en PHP 7.4. Grazas a @jonathanstegall (#1400).

2.7.0

Melloras

  • Engadida compatibilidade con columnas ordenables por defecto, coa posibilidade de desactivala con 'column' => array( 'disable_sortable' => true ). Grazas a @RubenMartins (#1281).
  • Novo tipo de campo, 'taxonomy_select_hierarchical'. Corrixe #751
  • Novas opcións de contador de caracteres para text, textarea e wysiwyg. Por agora, esta característica non está dispoñible para os tipos de campo wysiwyg dentro de grupos repetibles. Grazas a @gyrus (#1276).
    • Os novos parámetros:
      • 'char_counter' – Por defecto é false, sen contador. Establécea a true, ou a words para contar palabras en lugar de caracteres.
      • 'char_max' – enteiro. Cando se define, o contador mostra os caracteres/palabras restantes.
      • 'char_max_enforce' – booleano, por defecto: false. Actualmente só se aplica (como atributo maxlength) aos campos text e textarea que usan 'characters' para o contador.
    • Tamén podes substituír as cadeas de texto por defecto asociadas a estes parámetros:
      • 'words_left_text' – Por defecto: «Words left»
      • 'words_text' – Por defecto: «Words»
      • 'characters_left_text' – Por defecto: «Characters left»
      • 'characters_text' – Por defecto: «Characters»
      • 'characters_truncated_text' – Por defecto: «Your text may be truncated.»
  • Actualizado o estilo para que sexa máis compatible con WordPress 5.3. Grazas a @galengidman (#1314)
  • Engadido un novo parámetro de caixa, register_rest_field_cb, que ao usarse permite substituír a forma en que CMB2 xestiona os callbacks de register_rest_field, e definir o teu propio prefixo REST para os teus campos. Consulta este comentario do PR para máis contexto.
  • Limpeza renomeando CMB2_hookup a CMB2_Hookup. As clases non distinguen maiúsculas de minúsculas, polo que é un cambio retrocompatible. Grazas a @szepeviktor (#1330, #1328).
  • Valida composer.json para Travis CI. Grazas a @szepeviktor (#1326).
  • Engadido o arquivo LICENSE para cumprir os estándares da comunidade de GitHub. Grazas a @RubenMartins (#1316).
  • Engadido o novo filtro "cmb2_display_class_{$fieldtype}" e o parámetro de campo 'display_class' para permitir especificar a clase que se usa para mostrar o campo (en columnas de administración, etc.).
  • Actualizado CMB2_Types::_id() para permitir non engadir o atributo iterador se é un campo repetible.
  • Engadida a proba de CMB2_Utils::concat_attrs() para arrays aniñados como atributos data.
  • Varias actualizacións segundo a resposta de VIP. Grazas a @kevinlangleyjr, @mikeselander (#1255, #1257, #1259, #1261 #1262, e varios commits directos. Consulta #1260).

Corrección de fallos

  • Corrixidos algúns problemas con Travis. Grazas a @anhskohbo (#1220).
  • Javascript: pásase correctamente a fila recén creada ao evento activado cmb2_add_row.
  • Varias melloras de formato e documentación do código. Grazas a @tw2113.
  • Non se exclúe composer.json da distribución. Grazas a @johnbillion (#1225).
  • Ignóranse algúns directorios máis no paquete de distribución. Grazas a @johnbillion (#1226).
  • Usa CMB2_Field::get_rest_value() para obter os valores dos campos nos puntos finais da API REST de entradas (#1284).
  • Corrixido o problema polo que a vista previa en directo dos campos oEmbed non funcionaba se o campo se engadía dentro dun grupo, xunto con outros problemas relacionados. Corrixe #1157.
  • Corrixido o problema de que, ao usar a API REST cos tipos de campo file e text_datetime_timestamp_timezone, non se ofrecían os datos de campo de apoio (p. ex. o id do arquivo do campo file e o valor utc do campo text_datetime_timestamp_timezone). Corrixe https://wordpress.org/support/topic/cmb2-rest-api-image-file-field-as-an-object/.
  • Melloras de escape nos campos File Base e File. Grazas a @tomjn (#1296, #1297).
  • Corrixido o problema polo que non se podía facer clic/arrastrar nas áreas de texto CodeMirror repetibles para resaltar texto. Grazas a @JPry (#1300).
  • taxonomy_select_hierarchical agora garda na localización correcta, a táboa de relacións de termos. Grazas a @latheva (#1307).
  • Corrixido o problema (#1158) polo que os puntos finais da API REST por defecto (p. ex. /wp/v2/{post_type}) mostraban todas as caixas de todos os tipos de contido personalizados aínda que non estivesen rexistradas para ese tipo de contido. Grazas a @Mte90 (#1238).
  • Actualizadas e depuradas as dependencias de npm. Corrixe #1308.
  • Corrixidos algúns problemas de jshint.
  • Actualizadas as referencias das URL de incrustacións de WordPress.
  • Actualizacións para ter en conta os cambios de oEmbed de WordPress 5.2.
  • Corrección para garantir que os campos de selector de datas poidan ter un valor por defecto. Corrixe #1245.
  • Engadida a comprobación function_exists( 'add_action' ) ao arquivo de arranque para garantir a compatibilidade co uso de composer. Grazas a @salcode (#1271, #1270)
  • Corrixida a ligazón a facetwp-cmb2 en README.md. Grazas a @marcelreschke (#1248).
  • Usa get_user_locale() na área de administración en lugar de get_locale(). Corrixe #1267.
  • Agora CMB2::is_box_type() tamén comproba as taxonomías se a caixa está rexistrada para o tipo de obxecto «term». Isto debería corrixir algúns problemas nos que os metadatos de termos de CMB2 non aparecían nas solicitudes da API REST aos puntos finais de termos.

2.6.0

Corrección de fallos

  • Eliminadas definicións de métodos superfluas. Grazas a @tnorthcutt (#1200).
  • Corrixido o rexistro do filtro rest_value_cb. Grazas a @lipemat (#1212).
  • Non se activa o gardado do editor tinyMCE para o activeEditor. Evita o salto do cursor en Gutenberg. Corrixe #1202
  • Corrixido o problema polo que facer un campo repetible xeraba un erro de Javascript por falta da biblioteca sortable. Grazas a @slaFFik (#1216).
  • Asegúrase de que o valor pasado a CMB2_Utils::filter_empty desde CMB2::save_group_field sexa sempre un array. (#1026)
  • Corrixido un posible problema coa localización da ruta das probas. Grazas a @quasel (#463).

Melloras

  • Actualizada a versión de PHPUnit en composer.json. Grazas a @slaFFik (#1204).
  • Package.json: corrixida a necesidade de grunt global (antigo). Grazas a @slaFFik (#1206).
  • Engadido un diálogo de confirmación opcional ao botón Eliminar do campo de grupo. Exemplo documentado no arquivo de funcións de exemplo. Grazas a @slaFFik (#1208).
  • Engadido o atributo «id» nos divs .postbox dos campos de grupo para garantir a compatibilidade con scripts que esperan ids alí. Grazas a @amans2k (#1108).
  • As propiedades de CMB2_Option agora son accesibles. (#1052)
  • Novos ganchos de fila antes/despois: 'cmb2_before_field_row', "cmb2_before_{$field_type}_field_row", "cmb2_after_{$field_type}_field_row", 'cmb2_after_field_row'. Grazas a @rubengc (#953).
  • Introducidos tres novos filtros para filtrar os argumentos dos campos: 'cmb2_field_defaults', 'cmb2_field_arguments_raw', 'cmb2_field_arguments'. Grazas a @jrfnl (#588).

2.5.1

Corrección de fallos

  • Corrixido o problema cando o obxecto core/editor non existe (é undefined), que causaba incompatibilidades con Yoast e probablemente outros. Corrixe #1197

2.5.0

Melloras

  • Os campos repetibles agora pódense ordenar arrastrando. Grazas a @lipemat (#1142).
  • Actualizada a tradución sv_SE. Grazas a @edvind (#370).
  • Limpeza de QA/PHPCS. Grazas a @tw2113 (#1179).
  • Engadida a propiedade opcional 'mb_callback_args' da caixa CMB2 que permite definir o $callback_args pasado a add_meta_box(). Isto permite definir os novos parámetros de compatibilidade con Gutenberg/editor de bloques. Corrixe #1191
  • Compatibilidade con calquera tipo de marcado ao personalizar unha fila de grupo repetible. Grazas a @lipemat (#1187).
  • Engadidos os eventos Javascript cmb_init_pickers e cmb_init_code_editors para permitir a configuración en tempo real de selectores/editores.
  • Corrixida a relación de contraste de cor das descricións dos campos para unha mellor accesibilidade. h/t @rianrietveld. Corrixe #1193.
  • Engadido o método CMB2_Field::get_rest_value() para enviar o valor a través de varios filtros ('cmb2_get_rest_value', "cmb2_get_rest_value_{$field_type}", "cmb2_get_rest_value_for_{$field_id}" ) antes de enviar á solicitude REST.

Corrección de fallos

  • Corrixidos os erros da páxina de opcións ao usar CMB2 en WordPress anterior á 4.7. Grazas a @manzoorwanijk (#1166).
  • Corrixidos erros fatais ocasionais que podían producirse ao usar funcións de callback directamente en vez de call_user_func. Grazas a @manzoorwanijk (#1177).
  • Corrixido o problema polo que a pestana visual dos campos wysiwyg non gardaba o contido nas entradas de Gutenberg/editor de bloques. Grazas a @staurand (#1190 corrixe #1156).
  • Corrixido o problema de que remove_default non eliminaba realmente o metabox de taxonomía por defecto cando o rexistro da caixa usaba un contexto de caixa alternativo. Grazas a @lipemat (#1147).

2.4.2

Corrección de fallos

  • Non se pon en cola nin se rexistra o JS do editor de código de WordPress se non hai campos textarea_code rexistrados na páxina. Corrixe #1110.
  • Non se establecen os valores dos campos wysiwyg repetidos como a cadea «false» cando son o booleano false. Corrixe #1138 (outra vez!).

2.4.1

Corrección de fallos

  • Non se establecen os valores dos campos repetidos como a cadea «false» cando son o booleano false. Corrixe #1138.

2.4.0

Melloras

  • Permite vincular páxinas de opcións mediante navegación por pestanas. Mostrará navegación por pestanas para as páxinas de opcións que compartan a mesma propiedade de caixa CMB2 'tab_group'. Este fragmento demostra como crear unha páxina de opcións de menú de nivel superior con varias páxinas de submenú, cada unha coa navegación por pestanas. Para especificar un título de pestana diferente do título da páxina de opcións, establece a propiedade de caixa CMB2 'tab_title'. Consulta #301, #627.
  • Completada a tradución zh-CN. Grazas a @uicestone (#1089).
  • Actualizada a tradución nl_NL. Grazas a @tammohaannl (#1101).
  • Mellor visualización de imaxes brancas sobre transparente (p. ex. logotipos) usando un fondo de cadros para as imaxes. (#1103)
  • Posibilidade de desactivar o parámetro autoload das opcións mediante un filtro ("cmb2_should_autoload_{$options_key}") ou mediante un parámetro de caixa para os rexistros de caixa 'options-page' ('autoload' => false,). (#1093)
  • O tipo de campo 'textarea_code' agora usa CodeMirror, que é o usado por WordPress (#1096). Un campo pode desactivalo para volver ao comportamento anterior especificando un parámetro 'options':
    ‘options’ => array( ‘disable_codemirror’ => true )
    Como cos outros campos con javascript, os valores por defecto do editor de código pódense substituír mediante un atributo data-codeeditor. P. ex.:

    `php
    

    ‘attributes’ => array(
    ‘data-codeeditor’ => json_encode( array(
    ‘codemirror’ => array(
    ‘mode’ => ‘css’,
    ),
    ) ),
    ),
    `

  • Melloradas/engadidas as cabeceiras informativas de comentarios na parte superior dos arquivos CSS de CMB2.
  • Engadidos os métodos Javascript resetBoxes/resetBox para restablecer os formularios das caixas de CMB2.
  • Estilos mellorados para os campos do formulario de novo termo.
  • Novos métodos de CMB2_Boxes para filtrar instancias de CMB2, CMB2_Boxes::get_by( $property, $optional_compare ) e CMB2_Boxes::filter_by( $property, $to_ignore = null ).

Corrección de fallos

  • Corrixidos os campos 'taxonomy_*' cando se usan para campos/metadatos de termos. Garda o valor nos metadatos do termo.
  • Baleira os campos de CMB2 cando se engade un termo. Corrixe #794.
  • Os campos repetidos agora usan os valores por defecto rexistrados do campo. Corrixe #1137.
  • Corrixido o formato das mensaxes de obsolescencia no rexistro.
  • Evita abrir a ventá emerxente de medios ao facer clic na ligazón «Download» do arquivo. Corrixe #1130.

2.3.0

Melloras

Corrección de fallos

  • Actualización para a compatibilidade con PHP 7.2 (p. ex. corrixe Fatal error: Declaration of CMB2_Type_Colorpicker::render() must be compatible with CMB2_Type_Text::render($args = Array)…). (#1070, #1074, #1075).

Versións anteriores

Para o rexistro de cambios das versións anteriores á 2.3.0, consulta CHANGELOG.md.