Skip to content

Dónde pueden vivir los campos

Taxonomías y usuarios

Los campos no viven sólo en las entradas. Cambiando object_type aparecen en otras pantallas del escritorio, con la misma declaración:

php
// En las categorías. Se guarda en termmeta.
forja_register_box( 'ficha_categoria', array(
	'title'           => 'Ficha de la categoría',
	'object_type'     => 'term',
	'object_subtypes' => array( 'category' ),
	'fields'          => array( /* ... */ ),
) );

// En el perfil. `object_subtypes` filtra aquí por ROL.
forja_register_box( 'perfil_autor', array(
	'title'           => 'Datos de autor',
	'object_type'     => 'user',
	'object_subtypes' => array( 'author', 'editor' ),
	'fields'          => array( /* ... */ ),
) );

Se leen indicando el tipo de objeto:

php
forja_get_field( 'cabecera', $term_id, 'term' );
forja_get_field( 'cargo', $user_id, 'user' );

Funcionan todos los tipos de campo, compuestos incluidos. En las taxonomías hay dos pantallas: la de alta, donde los campos van apilados, y la de edición, donde van como filas de la tabla del escritorio.

Páginas de opciones

php
forja_register_box( 'ajustes_sitio', array(
	'title'       => 'Ajustes del sitio',
	'object_type' => 'option',
	'icon'        => 'dashicons-hammer',
	'fields'      => array(
		array( 'type' => 'text',  'name' => 'telefono', 'label' => 'Teléfono' ),
		array( 'type' => 'image', 'name' => 'logo',     'label' => 'Logotipo' ),
	),
) );

Crea su propia pantalla en el escritorio. Opciones adicionales: capability (por defecto manage_options), menu_title, parent_slug para colgarla de un menú existente, icon, position y button_label.

Se leen con un atajo que evita repetir el prefijo:

php
forja_get_option( 'telefono', 'ajustes_sitio' );

Funcionan todos los tipos de campo, compuestos incluidos.

Publicado con licencia GPL-2.0 o posterior.