Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/11/2013, 10:45
Avatar de metacortex
metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 20 años, 5 meses
Puntos: 832
Respuesta: salto de linea al procesar un get_post_meta

Hola bpsysoficial, se nota que has hecho tu esfuerzo y además has planteado tu duda de forma entendible (ojalá todos fueran así).

Cuando ingresas datos a través de un campo de formulario, debes tener en cuenta que la base de datos te lo devolverá como una sola línea. Si quieres mostrarlo en líneas separadas, es preciso que lo conviertas en array con un explode, basándote en el salto de línea generado en el campo de texto:

Código PHP:
Ver original
  1. $mega_campos = get_post_meta($post->ID , 'mega' , true); // Consultando los datos
  2.  
  3. $mega_links = explode("\n" , $mega_campos); // Convirtiendo en array

Desde luego, un array debe ser procesado con un bucle que ejecute una iteración (o vuelta) por cada elemento:

Código PHP:
Ver original
  1. foreach($mega_links as $m)
  2.     $mega_lista .= '
  3.     <li>'. make_clickable($m) .'</li>'; // make_clickable() te convierte el texto automáticamente en enlace

Listo. Sólo falta meterlo en una pequeña función para que sea más manipulable. Copia/pega lo siguiente en tu archivo functions.php:

Código PHP:
Ver original
  1. function mega_lista() {
  2.     global $post;
  3.  
  4.     $mega_campos = get_post_meta($post->ID , 'mega' , true);
  5.     $mega_lista = null;
  6.  
  7.     if( !empty($mega_campos) ) {
  8.         $mega_lista .= '
  9.         <ul>';
  10.         $mega_links = explode("\n" , $mega_campos);
  11.  
  12.         foreach($mega_links as $m)
  13.             $mega_lista .= '
  14.             <li>'. make_clickable($m) .'</li>';
  15.  
  16.         $mega_lista .= '
  17.         </ul>';
  18.  
  19.         echo $mega_lista;
  20.     }
  21.  
  22.     return false;
  23. }

En tu single.php sólo coloca (dentro del loop por supuesto):

Código PHP:
Ver original
  1. <?php mega_lista() ?>