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:
- Crea metaboxes para usar nas pantallas de edición de entradas.
- Crea formularios para usar en páxinas de opcións.
- Crea formularios para xestionar os metadatos de usuario e amosalos nas páxinas de engadir/editar perfil de usuario.
- Crea formularios para xestionar os metadatos de termos e amosalos onde se usen as túas taxonomías.
- API flexible que che permite usar formularios CMB case en calquera lugar, mesmo na parte pública.
- Inclúense varios tipos de campo.
- Gancho de API personalizado que che permite crear os teus propios tipos de campo.
- Hai numerosos ganchos e filtros que che permiten modificar moitos aspectos da biblioteca (sen editala directamente).
- Son compatibles os campos repetibles para a maioría dos tipos de campo, así como os grupos de campos repetibles.
- CMB2 pódese incluír con seguridade en calquera proxecto. Só cargará a versión máis recente do sistema.
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
- CMB2 Field Type: CMB Attached Posts Field de coreymcollins:
custom_attached_posts, para anexar entradas a unha páxina. - CMB2 Field Type: Post Search Ajax de alexis-magina:
post_search_ajaxanexa entradas entre si. Mesmo enfoque que CMB2 Attached Posts Field, pero con solicitude Ajax, opción múltiple/única e unha interface diferente. - CMB2 Field Type: Ajax Search de rubengc: 3 campos diferentes coa mesma interface en AJAX para buscar (con parámetros de consulta) usuarios, tipos de contido e termos de taxonomía.
- CMB2 Field Type: CMB2 User Search field de Mte90:
user_search_textengade un diálogo de busca de usuarios para buscar/anexar outros ID de usuario. -
CMB2 Field Type: Google Maps de mustardBees: tipo de campo personalizado para Google Maps.
O campo
pw_mapalmacena os valores de latitude/lonxitude, que despois podes usar para mostrar un mapa no teu tema. -
CMB2 Field Type: Leaflet Maps de villeristi: tipo de campo personalizado para mapas de Leaflet.
-
CMB2 Field Type: Select2 de mustardBees: tipos de campo personalizados que usan o script Select2:
- O campo
pw_select fieldfunciona case igual que o campo de selección por defecto. Non obstante, engade unha busca de tipo autocompletado que che permite facer rapidamente unha selección nunha lista longa - O campo
pw_multiselectpermíteche seleccionar varios valores cunha busca de tipo autocompletado. Os valores pódense arrastrar e soltar para reordenalos
- O campo
-
CMB Field Type: Slider de mattkrupnik: engade un campo de control escorrente de jQuery UI.
- WDS CMB2 Date Range Field de dustyf de WebDevStudios: engade un campo de intervalo de datas.
- CMB2 Remote Image Select de JayWood de WebDevStudios: permite aos usuarios introducir unha URL nun campo de texto e seleccionar unha única imaxe para usala nos metadatos da entrada. Semellante ao selector de imaxe destacada de Facebook.
- CMB Field Type: Sorter: este plugin ofrécheche dous tipos de campo CMB baseados no script Sorter.
- CMB Field Type: Tags: tipo de campo para CMB2 semellante ás etiquetas de WordPress. Nota: isto non establece as etiquetas da entrada, só ofrece unha entrada de texto única
- CMB Field Type: Link Picker: co control Link Picker for CMB2 podes elixir unha ligazón do teu sitio WordPress ou introducila manualmente. Tamén podes indicar se a ligazón debe abrirse nunha ventá nova ou non.
- CMB Field Type: MultidatesPicker: crea un tipo de campo de CMB2 que activa un calendario de datas múltiples. Usa un plugin chamado MultiDatesPicker v1.6.3 for jQuery UI.
- CMB Field Type: CMB2-radio-image: imaxe como botóns de opción.
- CMB2 Term Select: campo especial de CMB2 que permite aos usuarios definir un campo de texto con autocompletado para termos. Nota: isto establecerá os termos da taxonomía, pero ten a opción (
'apply_term' => false) de desactivalo e gardar no seu lugar os ID dos termos como datos (por exemplo, para páxinas de opcións, etc.). - CMB2 Related Links: permite aos usuarios engadir ligazóns relacionadas mediante un grupo de campos repetible. As entradas dos campos funcionan co CMB2 Field Type: CMB2 Post Search field mencionado arriba, polo que cada ligazón pode completarse con contido existente de WordPress facendo clic no botón de busca. Nota: este non é un tipo de campo estándar, senón unha función que se usa en combinación con CMB2::add_field().
- CMB2 Field Type: Order de rubengc: permite aos usuarios definir unha orde personalizada de opcións predefinidas.
- CMB2 Field Type: Animation de rubengc: permite aos usuarios elixir unha animación de Animate.css (inclúe vista previa da animación elixida).
- CMB2 Field Type: Ajax Search de rubengc: baseado en CMB2 Field Type: Post Search Ajax, engade a capacidade de anexar entradas/usuarios/termos e de limitar o número máximo de obxectos anexados.
- CMB2 Field Type: Visual Style Editor de rubengc: campo personalizado para CMB2 que permite personalizar o estilo cun pequeno conxunto de controis.
- CMB2 Field Type: Content Wrap de rubengc: campo personalizado para CMB2 que almacena valores de envoltura de contido (padding, marxe ou ancho do bordo).
- CMB2 Field JS Controls de rubengc: mostra calquera campo de xeito similar ás accións de publicación de WordPress (post_status, visibilidade e post_date da caixa de envío de entradas/páxinas).
- CMB2 Field Type: Position de rubengc: tipo de campo de CMB2 para configurar valores de posición de jQuery UI.
- CMB2 Field Type: CMB2 Roadway Segments de pixelwatt: este plugin engade un novo tipo de campo de CMB2 para debuxar segmentos de estrada nun mapa e ofrece un shortcode para mostralos.
- CMB2 Field Type: Font Awesome de serkanalgur: este plugin engade un novo tipo de campo de CMB2 para seleccionar iconas de Font Awesome.
- CMB2 Field Type: Typography de eduplessis: este plugin engade un novo tipo de campo de CMB2 «Typography» e usa jQuery fontselect para seleccionar a familia tipográfica.
- CMB2 Field Type: Markdown de Rekenna: este plugin engade un novo tipo de campo de CMB2 «CMB2 Markdown» onde podes escribir markdown e ver unha vista previa en directo do resultado ou convertelo a html cun botón.
- CMB2 Field Type: Switch Button de themevan: este plugin engade un tipo de campo de botón de interruptor personalizado para CMB2.
- CMB2 Field Type: select_plus de manzoorwanijk: tipo de campo de selección que funciona case igual que o campo
selectpor defecto. Non obstante, engade compatibilidade conoptgroupe co gardado de valores co atributomultiple. - CMB2 Field Type: Address de scottsawyer: só un campo de enderezo sinxelo e repetible. É simplemente o fragmento de código da CMB2 Snippet Library convertido nun plugin.
- CMB2 Field Type: Link de scottsawyer: crea un campo de ligazón con algúns atributos. Moi útil para dar estilo ás ligazóns.
- CMB2 Field Type: Widget Selector de scottsawyer: necesitas un campo que che permita (a ti ou ao teu editor) seleccionar ou mostrar unha instancia de widget existente? Entón este é o plugin para ti.
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
- Páxina de inicio do proxecto
- Páxina do proxecto en Github
- Documentación (wiki de GitHub)
- Snippet Library
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:
- Sube todo o directorio
/CMB2ao directorio/wp-content/plugins/. - Activa CMB2 a través do menú «Plugins» de WordPress.
- Copia (e renomea se o desexas)
example-functions.phpno directorio do teu tema ou plugin. - Edita para incluír só os campos que necesites e renomea as funcións.
- Beneficio.
Se inclúes a biblioteca no teu plugin ou tema:
- Coloca o directorio CMB dentro do teu tema ou plugin.
- Copia (e renomea se o desexas)
example-functions.phpnun cartafol por riba do directorio CMB OU copia todo o seu contido no arquivofunctions.phpdo teu tema. - 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).
- Beneficio.
Preguntas frecuentes
As FAQ adoitan acabar na wiki de github.
Comentarios
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.
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_cbda parte pública. O HTML almacenado nas visualizacións por defecto detextetext_moneyagora aparece como texto.textarea_codeconserva 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 cosprotocolsdo campo ao gardar e ao mostrar. As entradas cunha clave mal formada (incluídas0e 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
TypeErrorde PHP 8 ao mostrar un campofile_listque contiña un valor non escalar. - Engadiuse un
sanitize_callbackao axuste da páxina de opcións que rexistra CMB2, que o Plugin Check de wp.org esixe a cada chamada aregister_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:falsesignifica ninguén,truesignifica todo o mundo (incluídos os visitantes sen sesión iniciada),'box-capability'significa quen teña o parámetrocapabilityda 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 queshow_in_rest, e os filtros existentescmb2_api_get_box_permissions_check/cmb2_api_get_field_permissions_checkseguen executándose despois e teñen a última palabra. Consulta REST API Read Permissions (#1563). - Engadiuse un filtro
cmb2_rest_enforce_options_page_read_permissionspara 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 ácapabilityda 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 unrest_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_capabilitynela 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.mde 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, oedit_termsda taxonomía ou, para un destino de páxina de opcións, acapabilityda 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 aprop(), 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ónisset()) e escapouse o atributorelno 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 (atributosidedata-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.shpara o WordPress moderno. (#1555).
Corrección de fallos
- Corrixida unha obsolescencia de PHP 8.1+ ao sanear un campo baseado en
textareabaleiro (pasarnullawp_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-wrapque 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_idemb_object_typee endo_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_hookscando 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 campotext_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
httpspor defecto. Grazas a @paulschreiber (#1413). - Establecidas as probas E2E con Cypress. Grazas a @markjaquith (#1437).
- Actualizouse a funcionalidade JS
shiftRowspara 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_tabspara 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
5en lugar da10por 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-pickerse 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
wysiwygnon funcionase nun grupo, asegurando que os scripts se poñen en cola correctamente. Grazas a @yoren (#1361). - Corrixidos os tipos de
$object_idnos 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_paramen 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,textareaewysiwyg. Por agora, esta característica non está dispoñible para os tipos de campowysiwygdentro de grupos repetibles. Grazas a @gyrus (#1276).- Os novos parámetros:
'char_counter'– Por defecto é false, sen contador. Establécea a true, ou awordspara 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 campostextetextareaque 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.»
- Os novos parámetros:
- 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 deregister_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_hookupaCMB2_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
fileetext_datetime_timestamp_timezone, non se ofrecían os datos de campo de apoio (p. ex. o id do arquivo do campofilee o valorutcdo campotext_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_hierarchicalagora 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 deget_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_emptydesdeCMB2::save_group_fieldsexa 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
.postboxdos campos de grupo para garantir a compatibilidade con scripts que esperan ids alí. Grazas a @amans2k (#1108). - As propiedades de
CMB2_Optionagora 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/editornon 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_argspasado aadd_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_pickersecmb_init_code_editorspara 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
wysiwygnon gardaba o contido nas entradas de Gutenberg/editor de bloques. Grazas a @staurand (#1190 corrixe #1156). - Corrixido o problema de que
remove_defaultnon 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_coderexistrados na páxina. Corrixe #1110. - Non se establecen os valores dos campos
wysiwygrepetidos 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 atributodata-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/resetBoxpara restablecer os formularios das caixas de CMB2. - Estilos mellorados para os campos do formulario de novo termo.
- Novos métodos de
CMB2_Boxespara filtrar instancias deCMB2,CMB2_Boxes::get_by( $property, $optional_compare )eCMB2_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
- Actualizada a tradución ao italiano. Grazas a @Mte90 (#1067).
- A partir desta versión, pasamos por completo ao estándar e máis comunicativo Semantic Versioning. (#1061).
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.
