Resumen

Este articulo ejemplifica como utilizar pods personalizables, además de sus variables para crear plantillas con PHP.

 

Detalles

Pods es un plugin del CMS WordPress, el cuál permite la creación de tipos de contenido personalizados, además de incluir campos para ingreso de datos personalizados también, otorgando la posibilidad de crear estructuras de datos muy dinámicos, si se desea conocer más a profundidad la creación de pods, puedes visitar el siguiente artículo:

[CMS] ¿Qué son tipos de contenido en WordPress y cómo se utilizan?

A continuación podemos ver un ejemplo de creación de pods:

En este ejemplo de pod personalizado, tenemos un tipo de contenido llamado: empleado, con los campos:

  • Nombre del empleado.
  • Foto de la persona.
  • Cargo de la persona.

Una vez creado el pod, podremos verlo como uno de los elementos del menú de WordPress, procederemos a crear contenido de este tipo:

Ahora creado contenido, podemos trabajar en la plantilla PHP para mostrar los datos:

<?php
$params = array(
   'where' => 'cargo.meta_value LIKE "Contador"', 
   'orderby' => 't.post_date DESC',
   'limit' => -1);

Primero, es necesario definir un array, que contendrá la información para los filtros de búsqueda del pod en cuestión, existen muchos parámetros para colocar, en este enlace se pueden ver todos los posibles parametros a colocar. Si se quisiera mostrar todos los datos, podemos definir como parametro solamente: ‘limit’ => -1, siendo -1 igual a mostrar todos.

El parametro Where, se refiere a las condiciones que debe cumplir la entrada del pod para mostrarse, en este caso, utilizamos el campo personalizado cargo, que se le asigno al Pod anteriormente y escribimos la sentencia cargo.meta_value LIKE «Palabra_clave», siendo Palabra_clave la coincidencia que debe cumplir, es decir que la entrada debe tener como cargo: Contador.

A continuación con el atributo orderby, definimos como se mostrarán los resultados, en este caso los mostraremos por fecha de publicación (t.post_date) siendo t el identificador para todos los pods encontrados y post_date la palabra clave para fecha de publicación, y seguidamente DESC, definiendo que sea de manera descendente.

         $empleado = pods('empleado_del_mes', $params);

Se debe crear una variable con el nombre que deseemos y despues asignarle la función pods, con los parametros de:

  • Nombre del pod a utilizar.
  • Los filtros que definimos anteriormente.
if (0 < $empleado->total()) { ?> <h2> Empleados </h2>

Ahora creamos un if para determinar si existe algún pods, caso contrario no mostrar información.

    <?php while ($empleado->fetch()) { ?>  
         <div class="img-cover col-xs-12 col-md-12">
            <div class="miembro-picture col-xs-12 col-md-3">
                <div class="dmm_ribbon">
                   <span class="dmm_rbcnt">
                       <p>Destacado</p>
                   </span>          
                </div>
                <img src="<?php echo $empleado->display('foto'); ?> " class="miembro-img" alt="foto-miembro"></img>
            </div>
         <div class="miembro-text-des col-xs-12 col-sm-9">
            <h3 class='name-job'><?php echo $empleado->display('nombre'); ?></h3>
            <br>
            <p>
               <strong>
               <?php echo $empleado->display('cargo'); ?>
               </strong>
            </p>
         </div>
    </div>  
    <?php }

Aquí creamos un While, que repetirá el contenido con el número de entradas del pod que cumpla con las condiciones y luego utilizamos:

<?php echo $empleado->display('nombre'); ?>

Esta sentencia mostrará de la variable empleado (que definimos con anterioridad y la cual contiene el pod a buscar y los filtros del mismo) el dato que nosotros introduzcamos en el display, en el ejemplo superior: nombre, por lo tanto mostrará el nombre que se le haya introducido a la entrada del pod. De la misma manera para el resto de datos.

 

} else {  echo 'No se han establecido ningún empleado.'; } ?>

Se finaliza el código con el cierre del if, donde se define un texto a mostrar si no se encuentra ninguna entrada.

Código completo:

<?php $params = array(
   'where' => 'cargo.meta_value LIKE "Contador"',
   'orderby' => 't.post_date DESC',
   'limit' => -1);

$empleado = pods('empleado_del_mes', $params);

    <?php while ($empleado->fetch()) { ?>
       <div class="img-cover col-xs-12 col-md-12">
            <div class="miembro-picture col-xs-12 col-md-3">
                <div class="dmm_ribbon">
                  <span class="dmm_rbcnt">
                     <p>Destacado</p>
                  </span>  
                </div>
                <img src="<?php echo $empleado->display('foto'); ?> " class="miembro-img" alt="foto-miembro"></img>
            </div>
            <div class="miembro-text-des col-xs-12 col-sm-9">
               <h3 class='name-job'>
                  <?php echo $empleado->display('nombre'); ?>
               </h3>
               <br>
               <p>
                  <strong>
                      <?php echo $empleado->display('cargo'); ?>
                  </strong> 
               </p>
            </div>
       </div>
    <?php }
    } else { echo 'No se han establecido ningún empleado.'; } ?>

Mas información a servicio@rolosa.com


0 comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *