BH Custom Fields
WordPress plugin for managing custom fields via versioned JSON with controlled sync — prevents data loss when modifying field definitions.
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.zipPlugin 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
- Copiar la carpeta del plugin a
wp-content/plugins/(oweb/app/plugins/en Bedrock):
cp -r bh-custom-fields /var/www/html/web/app/plugins/
- 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.
- Activar el plugin desde el panel de administración o con WP-CLI:
wp plugin activate bh-custom-fields
- 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
- Editar
bh-custom-fields-config.json - Aparecerá una notificación en el panel de WordPress
- Ir a Fields Sync en el menú lateral
- Revisar los cambios detectados y resolver conflictos si los hay
- 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.