Traducciones de esta página:

Funciones de Front-end

Magic Fields cuenta con varias funciones de Front-end las cuales nos permiten mostrar de forma facil y sencilla la información de nuestros campos (Custom Fields)

intro_front-end.jpg

get

La función get es una de las mas usadas y con la que podemos mostrar información de cualquier campo. la función get es la siguente:

get ($fieldName, $groupIndex=1, $fieldIndex=1, $readyForEIP=true,$post_id=NULL)
  • $fieldName: es el nombre del nuestro campo a mostrar
  • $groupIndex: es el indice del grupo al que pertenece nuestro campo (grupos duplicados)
  • $fieldIndex: el el indice el del campo (campos duplicados)
  • $readyForEIP: este parametro activa o desactiva la edición de campo (solo Textbox y Multiline Texttbox ), cuando esta activado EIP (edit in place) en las opciones de Magic Fields se coloca un div en la salida de estos dos tipos de campos para editarlo en el Front-end ver video.
  • $post_id: si no nosotros queremos mostrar el campo fuera del loop de wordpress necesitamos colocar el ID del post

Ahora que ya sabemos todos los parametros de la función get es momento de ver algunos ejemplos.

Ejemplo 1

Tenemos un campo llamado “precio”, este campo no esta en ningun grupo ni es campo duplicable, estamos trabajando dentro del loop de wordpress, para obtener el campo usariamos el siguiente código:

<?php echo get('precio'); ?>

Ejemplo 2

Tenemos un campo llamado “marca” este campo se encuentra en un grupo duplicado, el campo que queremos mostrar se encuentra en el grupo 8, estamos trabajando dentro del loop de wordpress, el código para mostrar el campo es el siguiente:

<?php echo get('marca',8); ?>

Ejemplo 3

Tenemos un campor llamado “horario” este campo es duplicable, nosotros queremos mostrar el campo duplicado numero 4, trabajando dentro del loop de Wordpress, el código seria seria el siguiente:

<?php echo get('horario',1,4); ?>

Ejemplo 4

Tenemos un campo llamado “cancion” este es un campo duplicado y se encuentra en un grupo duplicado, el campo que queremos mostrar es el que se encuentra en el segundo grupo y el campo duplicado numero 4, queremos que no coloque los “div´s” de EIP, estamos trabajando dentro del loop de wordpress. para obtener el campo usariamos el siguiente código:

<?php
// nombre del campo: cancion, indice del grupo: 2, indice del campo: 4, sin EIP
echo get('cancion',2,4,0);
?>

Ejemplo 5

Tenemos un campo llamdado “reseña”, este campo no se encuentra en un grupo y no es campo duplicable, pero este elemento lo vamos a mostrar en un sidebar (fuera del loop de wordpress) sabemos que el ID del post es el 24. para mostrar el campo usariamos el siguiente código:

<?php echo get('reseña',1,1,1,14); ?>

get_audio

Magic Fields cuenta con un campo de tipo audio, este campo lo que hace es aceptar un archivo de audio, con la función get_audio podremos colocar un reproductor para que escuchen este audio.

La función get_audio cuenta con los siguientes parametros:

get_audio ($fieldName, $groupIndex=1, $fieldIndex=1,$post_id=NULL)
  • $fieldName: es el nombre del nuestro campo a mostrar
  • $groupIndex: es el indice del grupo al que pertenece nuestro campo (grupos duplicados)
  • $fieldIndex: el el indice el del campo (campos duplicados)
  • $post_id: si no nosotros queremos mostrar el campo fuera del loop de wordpress necesitamos colocar el ID del post.

Ejemplo 1

Tenemos un campo llamado “concierto” de tipo audio, este campo no se encuentra en ningun grupo y el campo no es duplicable. estamos trabajando en el loop de Wordpress, el código seria el siguiente:

<?php echo get_audio('concierto'); ?>

Ejemplo 2

Tenemos un campo llamado “sonido_calle” de tipo audio este se encuentra en un grupo duplicable, el campo que queremos mostrar se encuentra en el grupo 2, estamos trabajando dentro del loop de Wordpress el código es el siguiente:

<?php echo get_audio('sonido_calle',2); ?>

Ejemplo 3

Tenemos un campo llamado “sonido_ave” del tipo audio, este campo es duplicable, el campo que queremos mostrar es el campo duplicado 3, trabajando dentro del loop de Wordpress el código es el siguiente:

<?php echo get_audio('sonido_ave',1,3); ?>

Ejemplo 4

Tenemos un campo llamado “backstage” este campo se encuentra en un grupo duplicable y el campo es duplicable, el elemento que queremos mostrar es esta en el grupo numero 7 y es el campo duplicado numero 6, trabajando dentro del loop de Wordpress el código es el siguiente:

<?php echo get_audio('backstage',7,6); ?>

Ejemplo 5

Tenemos el mismo campo del ejemplo anterior y queremos mostrar el mismo elemento, pero ahora lo queremos mostrar en el sidebar (fuera de el loop de Wordpress) sabemos que el ID del post es el 11, para mostrar el campo el código es el siguiente:

<?php echo get_audio('backstage',7,6,11); ?>

get_image

El campo de tipo imagen es uno de los mas usados, cuando creamos un campo de tipo image tenemos la posibilidad de añadir opciones al campo: Max Height, Max Width y Custom (parametros de phpthumb) con esto logramos que la imagen tenga ciertas caracteristicas deacuerdo a nuestros parametros. este funcion regresa una la tag de HTML para imagen pero podemos hacer que solo regrese la URL del imagen con un parametro del función, este tag de HTML tendra la clase de CSS que colocamos en las opciones del campo.

La función get_image tiene el siguiente procedimiento: recibe el nombre del campo (nombre, indice del grupo y campo y otros paremetros) verifica si cuenta con parametros el campo (Max Height, Max Width y Custom) si no los tiene regresa la imagen original, si cuenta con parametros verifica si el thumbnail existe, si existe muestra este thumbnail, si no existe genera el thumbnail con los parametros y lo guarda con un nombre deacuerdo con la siguiente estructura: th_{md5 del los parametros}_{nombre de la image}.{extension del archivo}.

Con esto se logra que se genere solo una vez (la primera vez que es mostrada la imagen) el thumbnail, unicamente el thumbnail seria generado otra vez si se cambia la imagen o si los parametros cambian.

Los parametros de la función get_image son los siguiente:

<?php get_image ($fieldName, $groupIndex=1, $fieldIndex=1,$tag_img=1,$post_id=NULL,$override_params=NULL)  ?>
  • $fieldName: es el nombre del nuestro campo a mostrar
  • $groupIndex: es el indice del grupo al que pertenece nuestro campo (grupos duplicados)
  • $fieldIndex: el el indice el del campo (campos duplicados)
  • $tag_img: con este parametro le indicamos a la función si queremos que regrese la tag de HTML para imagen (1) o si no la queremos (0), el valor por default es con tag de HTML
  • $post_id: si no nosotros queremos mostrar el campo fuera del loop de wordpress necesitamos colocar el ID del post
  • $override_params: este parametro los podemos usar por si deseamos reescribir los parametros de phpthumb, puede ser una cadena o un arreglo.

Ejemplo 1

Tenemos un campo llamdo “portada” de tipo imagen. este campo no esta en un grupo y no es campo duplicado, en las opciones del campo se colocaron opciones para phpthumb y la clase de CSS es “magicfields”. Trabajando dentro del loop de Wordpress el código es el siguiente:

<?php
   // esto nos regresaría la imagen con su tag de HTML
   echo get_image('portada');
   // mostraria algo como esto:
   // <img src='http://magic.local/wp-content/files_mf/th_bf03ed07699f09100b6f3f35fe829808_1258154986sparta.jpg' class='magicfields'  />
 
   // ahora solo queremos que nos regrese la URL del la imagen
   echo get_image('portada',1,1,0);
   // mostraría algo como esto: http://magic.local/wp-content/files_mf/th_bf03ed07699f09100b6f3f35fe829808_1258154986sparta.jpg
?>

Ejemplo 2

Tenemos el mismo campo que el ejemplo anterior pero ahora el campo se encuentra dentro de un grupo, el elemento que queremos mostrar esta en el grupo 8. Trabajando dentro del loop de Wordpress el código es el siguiente:

<?php
   // esto nos regresaría la imagen con su tag de HTML
   echo get_image('portada',8);
   // mostraria algo como esto:
   // <img src='http://magic.local/wp-content/files_mf/th_bf03ed07699f09100b6f3f35fe829808_1258154986sparta.jpg' class='magicfields'  />
 
   // ahora solo queremos que nos regrese la URL del la imagen
   echo get_image('portada',8,1,0);
   // mostraría algo como esto: http://magic.local/wp-content/files_mf/th_bf03ed07699f09100b6f3f35fe829808_1258154986sparta.jpg
?>

Ejemplo 3

Tenemos el mismo campo que el ejemplo 1 pero ahora el campo es duplicado, el elemento que queremos mostrar es el duplicado numero 2. Trabajando dentro del loop de Wordpress el código es el siguiente:

<?php
   // esto nos regresaría la imagen con su tag de HTML
   echo get_image('portada',1,2);
   // mostraria algo como esto:
   // <img src='http://magic.local/wp-content/files_mf/th_bf03ed07699f09100b6f3f35fe829808_1258154986sparta.jpg' class='magicfields'  />
 
   // ahora solo queremos que nos regrese la URL del la imagen
   echo get_image('portada',1,2,0);
   // mostraría algo como esto: http://magic.local/wp-content/files_mf/th_bf03ed07699f09100b6f3f35fe829808_1258154986sparta.jpg
?>

Ejemplo 4

Tenemos el mismo campo que el ejemplo 1 pero ahora el campo esta en un grupo duplicado y es un campo duplicado, el elemento que queremos mostrar se encuentra en el grupo 4 es el duplicado numero 5. Trabajando dentro del loop de Wordpress el código es el siguiente:

<?php
   // esto nos regresaría la imagen con su tag de HTML
   echo get_image('portada',4,5);
   // mostraria algo como esto:
   // <img src='http://magic.local/wp-content/files_mf/th_bf03ed07699f09100b6f3f35fe829808_1258154986sparta.jpg' class='magicfields'  />
 
   // ahora solo queremos que nos regrese la URL del la imagen
   echo get_image('portada',4,5,0);
   // mostraría algo como esto: http://magic.local/wp-content/files_mf/th_bf03ed07699f09100b6f3f35fe829808_1258154986sparta.jpg
?>

Ejemplo 5

Tenemos el mismo campo que el ejemplo 1 (sin grupos y no es campo duplicado), pero queremos mostrar el campo en un sidebar (fuera del loop de Wordpress), sabemos que el ID del post es el 36, el código es el siguiente

<?php
   // esto nos regresaría la imagen con su tag de HTML
   echo get_image('portada',1,1,1,36);
   // mostraria algo como esto:
   // <img src='http://magic.local/wp-content/files_mf/th_bf03ed07699f09100b6f3f35fe829808_1258154986sparta.jpg' class='magicfields'  />
 
   // ahora solo queremos que nos regrese la URL del la imagen
   echo get_image('portada',1,2,0,36);
   // mostraría algo como esto: http://magic.local/wp-content/files_mf/th_bf03ed07699f09100b6f3f35fe829808_1258154986sparta.jpg
?>

Ejemplo 6

Tenemos el mismo campo que el ejemplo 1 (sin grupos y no es campo duplicado), pero queremos que tenga distintos parametros para phpthumb, queremos que tenga un Height de 200, Width de 300 y cuente con zoom-crop de 1 y calidad de 100. trabajando dentro del loop de Wordpress el código es el siguiente:

<?php
   //primero mostraremos con el $override_params en forma de cadena.
   $nuevos="h=200&w=200&zc=1&q=100";
   echo get_image('portada',1,1,1,NULL,$nuevos);
   // muestra algo como esto:
   // <img src='http://magic.local/wp-content/files_mf/th_9deb3d600c297050e13babc3493a87c0_1258154986sparta.jpg' class='magicfields'  />
 
   // ahora mostraremos con el $override_params en forma de arreglo
   $otros = array("h" => 200, "w" => 200, "zc" => 1, "q" =>100);
   echo get_image('portada',1,1,1,NULL,$otros);
   // y obtenemos el mismo resultado
 
   // como se vio en los ejemplos anteriores podemos elegir si queremos la tag de HTML para imagen y si queremos trabajar fuera de loop de Wordpress
 
?>

gen_image

El campo tipo imagen cuenta con otra función de Front-end, gen_image permite crear un thumbnail con nuevos parametros o que el tag de HTML para imagen cuante con mas atributos (id, mas clases de CSS, rel, etc).

La funcion gen_image funciona de forma similar a get_image solo genera una vez el thumbnail y lo vuelve a generar solo en caso de cambiar la imagen o cambiar los parametros de phpthumb.

Los parametros de la funcion gen_image son los siguientes:

gen_image ($fieldName, $groupIndex=1, $fieldIndex=1,$param=NULL,$attr=NULL,$post_id=NULL)
  • $fieldName: es el nombre del nuestro campo a mostrar
  • $groupIndex: es el indice del grupo al que pertenece nuestro campo (grupos duplicados)
  • $fieldIndex: el el indice el del campo (campos duplicados).
  • $param: este parametro los podemos usar por si deseamos reescribir los parametros de phpthumb, puede ser una cadena o un arreglo.
  • $attr: este parametro es una arreglo con los nuevos atributos para la tag de HTML para la imagen (id, mas clases de CSS, rel, etc)
  • $post_id: si no nosotros queremos mostrar el campo fuera del loop de wordpress necesitamos colocar el ID del post.

Ya hemos visto visto en como hacer uso de los parametros $groupIndex ,$fieldIndex y $post_id asi que en esta función omitiremos sus ejemplos y nos concentraremos en un ejemplo donde vemos como hacer uso de los parametros $param y $attr

ejemplo

tenemos un campo llamado “foto” de tipo imagen en las opciones del campo se colocaron opciones para phpthumb y la clase de CSS es “magicfields”.

<?php
   $nuevos_phpthumb = array ("w" => 300, "h" => 200);
   $nuevos_atributos = array('id' => "foto_uno", "class" => "clase1 clase2", "rel" => "un rel");
 
   // daremos nuevos valores para phpthumb
   echo gen_image('foto',1,1,$nuevos_phpthumb);
   // el resultado es:
   // <img src='http://magic.local/wp-content/files_mf/th_8fc97396546f1aaf80bb31701a2ac95a_1258154986sparta.jpg' class='magicfields'  />
 
   // ahora colocaremos nuevos elementos al tag de HTML, los atributos de phpthumb que toma son los que colocamos en las opciones del campo
   echo gen_image('foto',1,1,NULL,$nuevos_atributos);
   // el resultado es:
   // <img src='http://magic.local/wp-content/files_mf/th_bf03ed07699f09100b6f3f35fe829808_1258154986sparta.jpg' id='foto_uno' class='clase1 clase2' rel='un rel'  />
 
   // colocamos nuevos parametos para phpthumb y nuevos elementos para el tag de HTML
   echo gen_image('foto',1,1,$nuevos_phpthumb,$nuevos_atributos);
   // el resultado es:
   // <img src='http://magic.local/wp-content/files_mf/th_8fc97396546f1aaf80bb31701a2ac95a_1258154986sparta.jpg' id='foto_uno' class='clase1 clase2' rel='un rel'  />
?>

Notas

En proximas versiones de Magic Fields se esta considerando agregar un parametro podamos seleccionar si se quiere que regrese la tag de HTML para imagen.

pt

Esta es una funcion que nos regresa la URL de phpthumb por si desea usarlo con otras imagenes o con get.

<?php
   echo PT();
   // lo que mostraría el campo es algo como:
   // http://magic.local/wp-content/plugins/Magic-Fields/thirdparty/phpthumb/phpThumb.php
?>

get_label

Cuando creamos un campo en las opciones del campo colocamos un label, esta funcion regresa la label que se coloco para el campo.

Los parametros de la funcion get_label son los siguientes:

get_label($fieldName,$post_id=NULL)
  • $fieldName: nombre del campo.
  • $post_id: si trabajamos fuera del loop neceistamos colocar el ID del post.

Ejemplo 1

Tenemos un campo llamado “editor” y en la label pusimos “Nombre del editor”, para mostrar la label

<?php
   echo get_label('editor');
   // el resultado es: Nombre del editor
?>

Ejemplo 2

Con el mismo campo que el ejemplo anterior, pero ahora queremos trabajar fuera del loop de Wordpress, sabiendo que el ID del post es 24, el código es el siguiente:

<?php
   echo get_label('editor',24);
   // el resultado es: Nombre del editor
?>

get_panel_name

Esta función nos regresa el nombre del Write Panel con el cual fue hecho el post.

 <?php echo get_panel_name(); ?>

getFieldOrder

Cuando tenemos campos duplicados se hace el uso de indice del campo en las funcion anteriores, con esta función podemos saber ese indice.

los parametros del la funcion son:

getFieldOrder($field_name,$group=1,$post_id=NULL)
  • $field_name: nombre del campo duplicado.
  • $group: indice que grupo en el que esta el campo.
  • $post_id: si queremos trabajar fuera del loop de Wordpress es necesario que coloquemos el ID del post.

Ejemplo 1

Tenemos un campo duplicado llamado “cancion”, este campo no se encuentra en ningun grupo. para mostrar todos los campos duplicados colocamos el siguiente código:

  // la funcion getFieldOrder nos regresa un arreglo con el indice del campo
  // el parametro para esta funcion es el nombre del campo
  $canciones = getFieldOrder('cancion');
 
  foreach($canciones as $cancion){
     // el primer parametro de get es el nombre del campo, el segundo es el indice del grupo, si este
     // campo no se encuentra en un grupo duplicable colocamos 1, el tercer parametro es el indice del campo
     echo get('cancion',1,$cancion)."<br />";
  }

Ejemplo 2

Tenemos el mismo campo que el ejemplo anterior, pero ahora el campo duplicado se encuentra en un grupo duplicado, y queremos mostrar los campos duplicados que se encuentran en el grupo 3. trabajando dentro del loop de Wordpress el código es el siguiente:

  $canciones = getFieldOrder('cancion',3);
 
  foreach($canciones as $cancion){
     echo get('cancion',3,$cancion)."<br />";
  }

Ejemplo 3

Tomando las especificaciones del ejemplo 2, ahora queremos mostrar los campos repetidos en el sidebar (fuera del loop de Wordpress) y sabiendo que el ID del post es el 12 tenemos el siguiente código:

  $canciones = getFieldOrder('cancion'3,12);
 
  foreach($canciones as $cancion){
     echo get('cancion',3,$cancion,1,12)."<br />";
  }

getGroupOrder

Esta funcion es muy similar a getFieldOrder pero esta regresa los indices del orden de un grupo duplicado, recordemos que los grupos pueden ser ordenados (ver seccion grupos duplicados).

la función getGroupOrder cuenta con los siguientes parametros:

getGroupOrder($field_name,$post_id=NULL)
  • $field_name: es el nombre del uno de los campos del campo.
  • $post_id: si estamos trabajando fuera del loop de Wordpress es necesario colocar el ID del post.

Como ya hemos visto como trabajar fuera del loop de Wordpress omotiremos ese ejemplo.

Ejemplo

Tenemos un grupo duplicado llamado “miembro” que contiene 3 campos: nombre_miembro, puesto_miembro y foto_miembro. ahora queremos mostrar todos los campos duplicados con todos sus campos, estamos trabajando dentro del loop de Wordpress el código es el siguiente:

<?php
   $miembros = getGroupOrder('nombre_miembro');
   foreach($miembros as $miembro){
      // el segundo parametro de la funcion get y get_image es el indice del grupo a mostrar
      echo get('nombre_miembro',$miembro)."<br />";
      echo get('puesto_miembro',$miembro)."<br />";
      echo get_image('foto_miembro',$miembro)."<br /><br />";
   }
 
?>

get_field_duplicate

Esta funcion tambien sirve para campos duplicados al igual que getFieldOrder, pero get_field_duplicate nos regresa un arreglo con todos los campos duplicados (no indices).

los parametros de la función get_field_duplicate son:

get_field_duplicate($fieldName, $groupIndex=1,$post_id=NULL)
  • $fieldName: nombre del campo duplicado.
  • $group: indice que grupo en el que esta el campo.
  • $post_id: si queremos trabajar fuera del loop de Wordpress es necesario que coloquemos el ID del post.

Ejemplo 1

Tomando el ejemplo 1 de la función getFieldOrder, el código usando get_field_duplicate es el siguiente:

  // Tenemos un campo duplicado llamado “cancion”, este campo no se encuentra en ningun grupo.
  $canciones = get_field_duplicate('cancion');
 
  foreach($canciones as $cancion){
     echo $cancion."<br />";
  }

Ejemplo 2

Tomando el ejempo 2 del la función getFieldOrder, el código usado get_field_duplicate es el siguiete:

  // Tenemos el mismo campo que el ejemplo anterior, pero ahora el campo duplicado se encuentra en un grupo duplicado
  // y queremos mostrar los campos duplicados que se encuentran en el grupo 3.
  $canciones = get_field_duplicate('cancion',3);
 
  foreach($canciones as $cancion){
     echo $cancion."<br />";
  }

get_group

La funcion get_group regresa un arreglo con todos los campos de un grupo (puede ser duplicado o no).

los parametros de la función get_group son los siguientes:

get_group($name_group,$post_id=NULL)
  • $name_group: nombre del grupo
  • $post_id: si trabajamos fuera del loop de Wordpress necesitamos colocar el ID del post

La forma de usar esta funcion es:

<?php
$elementos = get_group('nombre del grupo');
// podemos usar la funcion pr($elementos) o print_r($elemento) para visualisar el contenido del arreglo
 
foreach($elementos as $elemento){
   // imprimimos los campos, tambien podemos usar pr($elemento) o print_r($elemento)
   // para ver el contenido del grupo
  }
 
// El arreglo que regresa esta funcion tiene la siguiente estructura:
// [indice del grupo][nombre del campo][indice del campo] = valor
 
// para los campos tipo imagen nivel mas en el arreglo con la letra "o" para la imagen original o "t" para thumbnail
// [indice del grupo][nombre del campo][indice del campo]["o"] = URL de la imagen orginal
// [indice del grupo][nombre del campo][indice del campo]["t"] = URL de la thumbnail (deacuerdo con los parametros de phpthumb en la configuración del campo)
 
?>

Pero que pasa si tenemos campos sin un grupo ¿podemos hacer uso de esta funcion? la respuesta es si, cuando añadimos campos sin algun campo lo que hace Magic Fields es añadirlos a un grupo, el nombre de esta campo es “__default” (son dos guiones bajos) con este nombre podemos mostrar a todos los campos que como tal no los añadimos a un grupo.

Como se ve esta funcion regresa un arreglo con todos los campos de un grupo, si en este grupo hay campos duplicados tambien nos regresara todos los campos duplicados. es importante que si no tienes claro la forma en que esta la información hagas uso de funciones como pr o print_r.

Notas adicionales

es/front-end_functions.txt · Última modificación: 2009/11/16 15:47 por gnuget