Uso de Meta Box en WordPress

housedir Siguiendo

Kappa
Programador
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
11 Jul 2012
Mensajes
2.663
hola a todos, pues quisiera saber si alguien sabe como usar los meta box en wordpress, me instale un plugin llamado "Meta Box" tiene un php demo donde cuando voy a crear una entrada me muestra el nuevo formulario personalizado, lo relleno pero no se como hacer para que los datos que meti en el metabox aparesca en el post, aqui tienen el codigo demo php

Insertar CODE, HTML o PHP:
<?php
/**
 * Registering meta boxes
 *
 * All the definitions of meta boxes are listed below with comments.
 * Please read them CAREFULLY.
 *
 * You also should read the changelog to know what has been changed before updating.
 *
 * For more information, please visit:
 * [MENTION=3037]Link[/MENTION] [url]http://www.deluxeblogtips.com/meta-box/[/url]
 */

/********************* META BOX DEFINITIONS ***********************/

/**
 * Prefix of meta keys (optional)
 * Use underscore (_) at the beginning to make keys hidden
 * Alt.: You also can make prefix empty to disable it
 */
// Better has an underscore as last sign
$prefix = 'YOUR_PREFIX_';

global $meta_boxes;

$meta_boxes = array();

// 1st meta box
$meta_boxes[] = array(
	// Meta box id, UNIQUE per meta box. Optional since 4.1.5
	'id' => 'standard',

	// Meta box title - Will appear at the drag and drop handle bar. Required.
	'title' => __( 'Standard Fields', 'rwmb' ),

	// Post types, accept custom post types as well - DEFAULT is array('post'). Optional.
	'pages' => array( 'post', 'page' ),

	// Where the meta box appear: normal (default), advanced, side. Optional.
	'context' => 'normal',

	// Order of meta box: high (default), low. Optional.
	'priority' => 'high',

	// Auto save: true, false (default). Optional.
	'autosave' => true,

	// List of meta fields
	'fields' => array(
		// TEXT
		array(
			// Field name - Will be used as label
			'name'  => __( 'Text', 'rwmb' ),
			// Field ID, i.e. the meta key
			'id'    => "{$prefix}text",
			// Field description (optional)
			'desc'  => __( 'Text description', 'rwmb' ),
			'type'  => 'text',
			// Default value (optional)
			'std'   => __( 'Default text value', 'rwmb' ),
			// CLONES: Add to make the field cloneable (i.e. have multiple value)
			'clone' => true,
		),
		// CHECKBOX
		array(
			'name' => __( 'Checkbox', 'rwmb' ),
			'id'   => "{$prefix}checkbox",
			'type' => 'checkbox',
			// Value can be 0 or 1
			'std'  => 1,
		),
		// RADIO BUTTONS
		array(
			'name'    => __( 'Radio', 'rwmb' ),
			'id'      => "{$prefix}radio",
			'type'    => 'radio',
			// Array of 'value' => 'Label' pairs for radio options.
			// Note: the 'value' is stored in meta field, not the 'Label'
			'options' => array(
				'value1' => __( 'Label1', 'rwmb' ),
				'value2' => __( 'Label2', 'rwmb' ),
			),
		),
		// SELECT BOX
		array(
			'name'     => __( 'Select', 'rwmb' ),
			'id'       => "{$prefix}select",
			'type'     => 'select',
			// Array of 'value' => 'Label' pairs for select box
			'options'  => array(
				'value1' => __( 'Label1', 'rwmb' ),
				'value2' => __( 'Label2', 'rwmb' ),
			),
			// Select multiple values, optional. Default is false.
			'multiple'    => false,
			'std'         => 'value2',
			'placeholder' => __( 'Select an Item', 'rwmb' ),
		),
		// HIDDEN
		array(
			'id'   => "{$prefix}hidden",
			'type' => 'hidden',
			// Hidden field must have predefined value
			'std'  => __( 'Hidden value', 'rwmb' ),
		),
		// PASSWORD
		array(
			'name' => __( 'Password', 'rwmb' ),
			'id'   => "{$prefix}password",
			'type' => 'password',
		),
		// TEXTAREA
		array(
			'name' => __( 'Textarea', 'rwmb' ),
			'desc' => __( 'Textarea description', 'rwmb' ),
			'id'   => "{$prefix}textarea",
			'type' => 'textarea',
			'cols' => 20,
			'rows' => 3,
		),
	),
	'validation' => array(
		'rules' => array(
			"{$prefix}password" => array(
				'required'  => true,
				'minlength' => 7,
			),
		),
		// optional override of default jquery.validate messages
		'messages' => array(
			"{$prefix}password" => array(
				'required'  => __( 'Password is required', 'rwmb' ),
				'minlength' => __( 'Password must be at least 7 characters', 'rwmb' ),
			),
		)
	)
);

// 2nd meta box
$meta_boxes[] = array(
	'title' => __( 'Advanced Fields', 'rwmb' ),

	'fields' => array(
		// HEADING
		array(
			'type' => 'heading',
			'name' => __( 'Heading', 'rwmb' ),
			'id'   => 'fake_id', // Not used but needed for plugin
		),
		// SLIDER
		array(
			'name' => __( 'Slider', 'rwmb' ),
			'id'   => "{$prefix}slider",
			'type' => 'slider',

			// Text labels displayed before and after value
			'prefix' => __( '$', 'rwmb' ),
			'suffix' => __( ' USD', 'rwmb' ),

			// jQuery UI slider options. See here [url]http://api.jqueryui.com/slider/[/url]
			'js_options' => array(
				'min'   => 10,
				'max'   => 255,
				'step'  => 5,
			),
		),
		// NUMBER
		array(
			'name' => __( 'Number', 'rwmb' ),
			'id'   => "{$prefix}number",
			'type' => 'number',

			'min'  => 0,
			'step' => 5,
		),
		// DATE
		array(
			'name' => __( 'Date picker', 'rwmb' ),
			'id'   => "{$prefix}date",
			'type' => 'date',

			// jQuery date picker options. See here [url]http://api.jqueryui.com/datepicker[/url]
			'js_options' => array(
				'appendText'      => __( '(yyyy-mm-dd)', 'rwmb' ),
				'dateFormat'      => __( 'yy-mm-dd', 'rwmb' ),
				'changeMonth'     => true,
				'changeYear'      => true,
				'showButtonPanel' => true,
			),
		),
		// DATETIME
		array(
			'name' => __( 'Datetime picker', 'rwmb' ),
			'id'   => $prefix . 'datetime',
			'type' => 'datetime',

			// jQuery datetime picker options.
			// For date options, see here [url]http://api.jqueryui.com/datepicker[/url]
			// For time options, see here [url]http://trentrichardson.com/examples/timepicker/[/url]
			'js_options' => array(
				'stepMinute'     => 15,
				'showTimepicker' => true,
			),
		),
		// TIME
		array(
			'name' => __( 'Time picker', 'rwmb' ),
			'id'   => $prefix . 'time',
			'type' => 'time',

			// jQuery datetime picker options.
			// For date options, see here [url]http://api.jqueryui.com/datepicker[/url]
			// For time options, see here [url]http://trentrichardson.com/examples/timepicker/[/url]
			'js_options' => array(
				'stepMinute' => 5,
				'showSecond' => true,
				'stepSecond' => 10,
			),
		),
		// COLOR
		array(
			'name' => __( 'Color picker', 'rwmb' ),
			'id'   => "{$prefix}color",
			'type' => 'color',
		),
		// CHECKBOX LIST
		array(
			'name' => __( 'Checkbox list', 'rwmb' ),
			'id'   => "{$prefix}checkbox_list",
			'type' => 'checkbox_list',
			// Options of checkboxes, in format 'value' => 'Label'
			'options' => array(
				'value1' => __( 'Label1', 'rwmb' ),
				'value2' => __( 'Label2', 'rwmb' ),
			),
		),
		// EMAIL
		array(
			'name'  => __( 'Email', 'rwmb' ),
			'id'    => "{$prefix}email",
			'desc'  => __( 'Email description', 'rwmb' ),
			'type'  => 'email',
			'std'   => 'name@email.com',
		),
		// RANGE
		array(
			'name'  => __( 'Range', 'rwmb' ),
			'id'    => "{$prefix}range",
			'desc'  => __( 'Range description', 'rwmb' ),
			'type'  => 'range',
			'min'   => 0,
			'max'   => 100,
			'step'  => 5,
			'std'   => 0,
		),
		// URL
		array(
			'name'  => __( 'URL', 'rwmb' ),
			'id'    => "{$prefix}url",
			'desc'  => __( 'URL description', 'rwmb' ),
			'type'  => 'url',
			'std'   => 'http://google.com',
		),
		// OEMBED
		array(
			'name'  => __( 'oEmbed', 'rwmb' ),
			'id'    => "{$prefix}oembed",
			'desc'  => __( 'oEmbed description', 'rwmb' ),
			'type'  => 'oembed',
		),
		// SELECT ADVANCED BOX
		array(
			'name'     => __( 'Select', 'rwmb' ),
			'id'       => "{$prefix}select_advanced",
			'type'     => 'select_advanced',
			// Array of 'value' => 'Label' pairs for select box
			'options'  => array(
				'value1' => __( 'Label1', 'rwmb' ),
				'value2' => __( 'Label2', 'rwmb' ),
			),
			// Select multiple values, optional. Default is false.
			'multiple'    => false,
			// 'std'         => 'value2', // Default value, optional
			'placeholder' => __( 'Select an Item', 'rwmb' ),
		),
		// TAXONOMY
		array(
			'name'    => __( 'Taxonomy', 'rwmb' ),
			'id'      => "{$prefix}taxonomy",
			'type'    => 'taxonomy',
			'options' => array(
				// Taxonomy name
				'taxonomy' => 'category',
				// How to show taxonomy: 'checkbox_list' (default) or 'checkbox_tree', 'select_tree', select_advanced or 'select'. Optional
				'type' => 'checkbox_list',
				// Additional arguments for get_terms() function. Optional
				'args' => array()
			),
		),
		// POST
		array(
			'name'    => __( 'Posts (Pages)', 'rwmb' ),
			'id'      => "{$prefix}pages",
			'type'    => 'post',

			// Post type
			'post_type' => 'page',
			// Field type, either 'select' or 'select_advanced' (default)
			'field_type' => 'select_advanced',
			// Query arguments (optional). No settings means get all published posts
			'query_args' => array(
				'post_status' => 'publish',
				'posts_per_page' => '-1',
			)
		),
		// WYSIWYG/RICH TEXT EDITOR
		array(
			'name' => __( 'WYSIWYG / Rich Text Editor', 'rwmb' ),
			'id'   => "{$prefix}wysiwyg",
			'type' => 'wysiwyg',
			// Set the 'raw' parameter to TRUE to prevent data being passed through wpautop() on save
			'raw'  => false,
			'std'  => __( 'WYSIWYG default value', 'rwmb' ),

			// Editor settings, see wp_editor() function: look4wp.com/wp_editor
			'options' => array(
				'textarea_rows' => 4,
				'teeny'         => true,
				'media_buttons' => false,
			),
		),
		// DIVIDER
		array(
			'type' => 'divider',
			'id'   => 'fake_divider_id', // Not used, but needed
		),
		// FILE UPLOAD
		array(
			'name' => __( 'File Upload', 'rwmb' ),
			'id'   => "{$prefix}file",
			'type' => 'file',
		),
		// FILE ADVANCED (WP 3.5+)
		array(
			'name' => __( 'File Advanced Upload', 'rwmb' ),
			'id'   => "{$prefix}file_advanced",
			'type' => 'file_advanced',
			'max_file_uploads' => 4,
			'mime_type' => 'application,audio,video', // Leave blank for all file types
		),
		// IMAGE UPLOAD
		array(
			'name' => __( 'Image Upload', 'rwmb' ),
			'id'   => "{$prefix}image",
			'type' => 'image',
		),
		// THICKBOX IMAGE UPLOAD (WP 3.3+)
		array(
			'name' => __( 'Thickbox Image Upload', 'rwmb' ),
			'id'   => "{$prefix}thickbox",
			'type' => 'thickbox_image',
		),
		// PLUPLOAD IMAGE UPLOAD (WP 3.3+)
		array(
			'name'             => __( 'Plupload Image Upload', 'rwmb' ),
			'id'               => "{$prefix}plupload",
			'type'             => 'plupload_image',
			'max_file_uploads' => 4,
		),
		// IMAGE ADVANCED (WP 3.5+)
		array(
			'name'             => __( 'Image Advanced Upload', 'rwmb' ),
			'id'               => "{$prefix}imgadv",
			'type'             => 'image_advanced',
			'max_file_uploads' => 4,
		),
		// BUTTON
		array(
			'id'   => "{$prefix}button",
			'type' => 'button',
			'name' => ' ', // Empty name will "align" the button to all field inputs
		),

	)
);

/********************* META BOX REGISTERING ***********************/

/**
 * Register meta boxes
 *
 * @return void
 */
function YOUR_PREFIX_register_meta_boxes()
{
	// Make sure there's no errors when the plugin is deactivated or during upgrade
	if ( !class_exists( 'RW_Meta_Box' ) )
		return;

	global $meta_boxes;
	foreach ( $meta_boxes as $meta_box )
	{
		new RW_Meta_Box( $meta_box );
	}
}
// Hook to 'admin_init' to make sure the meta box class is loaded before
// (in case using the meta box class in another plugin)
// This is also helpful for some conditionals like checking page template, categories, etc.
add_action( 'admin_init', 'YOUR_PREFIX_register_meta_boxes' );
 

housedir

Kappa
Programador
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
11 Jul 2012
Mensajes
2.663
en el foro se ha hablado bastante... de igual manera...
Function Reference/add meta box « WordPress Codex
ahi tenes un ejemplo de como crearlos y leerlos!

gracias por responder, la verdad aun me enredo un poco, yo lo que hice fue instalar el plugin, luego subi un php llamado demo.php a la carpeta del teme, en el php funtions ingrese una linea include que llama a demo.php, asi me aparecen los campos personalizados al tratar de crear una entrada, pero no se como hacer que aparesca la informacion que ingrese en los campos personalizados en el post, hace poco vi un theme premiun que con solo colocar en el post [ejemplo] asi mismo con los corchetes me aparecia la informacion del meta box en el post, no se si me podrias decir cual es el paso siguiente que debo realizar ya que no entiendo mucho, gracias
 

Cicklow

Admin
Dseda
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
30 May 2011
Mensajes
1.101
gracias por responder, la verdad aun me enredo un poco, yo lo que hice fue instalar el plugin, luego subi un php llamado demo.php a la carpeta del teme, en el php funtions ingrese una linea include que llama a demo.php, asi me aparecen los campos personalizados al tratar de crear una entrada, pero no se como hacer que aparesca la informacion que ingrese en los campos personalizados en el post, hace poco vi un theme premiun que con solo colocar en el post [ejemplo] asi mismo con los corchetes me aparecia la informacion del meta box en el post, no se si me podrias decir cual es el paso siguiente que debo realizar ya que no entiendo mucho, gracias

PHP:
$value = get_post_meta( $post->ID, 'meta_key', true );
echo $value;

tan simple como eso...
 

housedir

Kappa
Programador
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
11 Jul 2012
Mensajes
2.663
PHP:
$value = get_post_meta( $post->ID, 'meta_key', true );
echo $value;

tan simple como eso...

gracias de nuevo, la cuestion es donde coloco ese codigo que me facilitaste, eso es lo que no logro entender, lo debo agregar a el single.php?, disculpa las molestias, saludos
 

Cicklow

Admin
Dseda
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
30 May 2011
Mensajes
1.101
gracias de nuevo, la cuestion es donde coloco ese codigo que me facilitaste, eso es lo que no logro entender, lo debo agregar a el single.php?, disculpa las molestias, saludos

en donde kieras que se muestre eso... osea si agregastes los meta es por algo... para msotrar algo o lo ke sea... con eso lo mostras donde vos mas kieras
 

housedir

Kappa
Programador
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
11 Jul 2012
Mensajes
2.663
en donde kieras que se muestre eso... osea si agregastes los meta es por algo... para msotrar algo o lo ke sea... con eso lo mostras donde vos mas kieras

Muchas gracias por tu ayuda, por último tengo un gran problema y es que no logro hacer que las entradas personalizadas se muestren junto a los Posts, he tratado de muchas maneras que consegui en google pero no logro hacerlo y quisiera que las entradas personalizadas sean tomadas igualmente como Posts normales, no se si el problema sea porque uso buddypress
 
Arriba