WP Manifestindependent plugin directory
manifest / content / bh_custom_fields_wp_plugin

BH Custom Fields

WordPress plugin for managing custom fields via versioned JSON with controlled sync — prevents data loss when modifying field definitions.

by BH · github.com/bibliohack/bh_custom_fields_wp_plugin

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/bibliohack/bh_custom_fields_wp_plugin/archive/refs/heads/master.zip

Plugin de WordPress para gestión de campos personalizados mediante configuración JSON con sistema de sincronización controlada.

Características

  • Define campos personalizados por post type en un archivo JSON versionable
  • La configuración activa se lee desde la base de datos (sin I/O de disco en cada request)
  • Detecta automáticamente cambios en el JSON y notifica al administrador
  • Sistema de sincronización controlada: los cambios no se aplican automáticamente
  • Previene pérdida de datos al cambiar o eliminar campos con contenido existente
  • Tipos de campo: text (plain/html), bool, choice (select/radio), related, media, date
  • Soporte para campos múltiples ("multiple": true)
  • Funciones helper para usar en templates PHP

Requisitos

  • WordPress 5.2 o superior
  • PHP 7.4 o superior

Instalación

  1. Copiar la carpeta del plugin a wp-content/plugins/ (o web/app/plugins/ en Bedrock):
cp -r bh-custom-fields /var/www/html/web/app/plugins/
  1. Crear el archivo de configuración a partir del ejemplo incluido:
cp bh-custom-fields-config.example.json bh-custom-fields-config.json

Editar bh-custom-fields-config.json para definir los campos del proyecto.

  1. Activar el plugin desde el panel de administración o con WP-CLI:
wp plugin activate bh-custom-fields
  1. En la primera activación, el plugin copia automáticamente el JSON a la base de datos.

Configuración

Los campos se definen en bh-custom-fields-config.json, organizado por post type:

{
  "post": [
    { "id": "subtitulo", "label": "Subtítulo", "type": "text", "mode": "plain" },
    { "id": "imagen_destacada", "label": "Imagen destacada", "type": "media", "media_type": "image" },
    { "id": "seccion", "label": "Sección", "type": "choice", "display": "select",
      "options": { "politica": "Política", "cultura": "Cultura" } }
  ]
}

Ver INSTALACION Y CONFIGURACION.md para la referencia completa de tipos de campo.

Uso en templates

// Obtener valor
$subtitulo = bhack_get_custom_field('subtitulo');

// Imprimir valor
bhack_the_custom_field('subtitulo');

// Imagen
bhack_the_custom_field_media('imagen_destacada', 'large');

// Label legible de un campo choice
bhack_the_custom_field_label('seccion'); // imprime "Política" en vez de "politica"

// Post relacionado
$post = bhack_get_custom_field_related('post_relacionado');

Modificar la configuración

  1. Editar bh-custom-fields-config.json
  2. Aparecerá una notificación en el panel de WordPress
  3. Ir a Fields Sync en el menú lateral
  4. Revisar los cambios detectados y resolver conflictos si los hay
  5. Hacer click en "Actualizar configuración"

Los cambios en el JSON no se aplican solos. El plugin siempre lee desde la base de datos.

Desinstalación

Al desinstalar el plugin desde el panel de WordPress se eliminan automáticamente todas las opciones de configuración en la base de datos. Los post meta (datos guardados en los posts) se eliminan solo si está activada la opción "Eliminar todos los datos guardados" en la página Fields Sync. Por defecto esta opción está desactivada para evitar pérdida de datos accidental.

Documentación

Licencia

GPL v2 o superior.