En WordPress tienes la posibilidad de crear un Custom Post Type, que podríamos definirlo como un tipo de posts con una taxonomía distinta de los posts habituales de WordPress. Entre ellos podríamos tener los testimonios, portafolios, trabajos, ofertas, etc. Muchos de ellos son creados por las propias plantillas, otros por plugins y en otro tutorial veremos cómo crearlos nosotros mismos. En el tutorial de hoy veremos cómo obtener el número total de posts de una taxonomía y cómo mostrarlo en PHP dentro de nuestra plantilla, y, en segunda instancia, cómo mostrarlo desde una función con un Shortcode. Vamos a ello…
Para el tutorial de hoy vamos a utilizar de ejemplo el plugin para Visual Composer llamado Testimonials Showcase for Visual Composer, que permite mostrar testimonios en nuestras páginas o posts de una forma atractiva. Este plugin genera un Custom Post Type llamado: imtst_testimonials.
Mostrar Contador total de un Custom Post Type PHP
Si tenemos que trabajar directamente sobre nuestra plantilla porque estamos obligados, lo que haremos es abrir el archivo PHP que va a mostrar el resultado del total de posts de una determinada taxonomía, y utilizar este código ajustándolo a nuestras necesidades:
<?php // WOO Freelance Contar Total de Posts en un Custom Post Type $definetipo = wp_count_posts('imtst_testimonials'); $totaldeposts = $definetipo->publish; echo 'Texto previo al contador '; echo $totaldeposts; echo ' Texto posterior al contador'; ?>
Este código mostraría el siguiente resultado, donde 83 es el total de un Custom Post Type, en nuestro caso, de testimonios.
De esta forma sólo nos queda cambiar los textos para que se ajuste a lo que queremos:
<?php // WOO Freelance Contar Total de Posts en un Custom Post Type $definetipo = wp_count_posts('imtst_testimonials'); $totaldeposts = $definetipo->publish; echo 'Tenemos '; echo $totaldeposts; echo ' clientes satisfechos.'; ?>
Y quedaría así:
Mostrar Contador Total de un Custom Post Type Función y Shortcode
Ahora bien, si lo que queremos es mostrar el contador utilizando un Shortcode que podemos añadir en cualquier lugar de nuestra web haremos lo siguiente. Crearemos una función en el archivo functions.php de nuestro WordPress, y luego asociaremos esa función con un Shortcode que tendrá un parámetro. En nuestro caso ese parámetro será el Custom Post Type con el que estamos trabajando imtst_testimonials.
function contadorwoofreelance($atts) { $definetipo = wp_count_posts($atts['tipo']); $totaldeposts = $definetipo->publish; ob_start(); echo 'Texto previo al contador '; echo $totaldeposts; echo ' Texto posterior al contador'; $ReturnString = ob_get_contents(); ob_end_clean(); return $ReturnString; } add_shortcode('woocontador', 'contadorwoofreelance');
Utilizando este Shortcodde:
[woocontador tipo="imtst_testimonials"]
El resultado será el mismo que en el caso anterior, con la diferencia de que no tendremos que tocar nada en nuestras plantillas.
¿Cómo saber el Custom Post Type de un contenido de tu web?
Si tienes plugins que generan Custom Post Types o lo hace la plantilla, la URL de adminstración de esos posts te dará el nombre que debes cambiar en el Shortcode. Aquí tienes algunos ejemplos:
Galería de Portafolios:
http://tudominio.com/wp-admin/edit.php?post_type=masonry_gallery
[woocontador tipo="masonry_gallery"]
Lista de Carruseles:
http://tudominio.com/wp-admin/edit.php?post_type=carousels
[woocontador tipo="carousels"]
Ofertas de Empleo:
http://tudominio.com/wp-admin/edit.php?post_type=jobs
[woocontador tipo="jobs"]
Y así con cada tipo de posts en los que quieras mostrar un contador de totales.
Para mostrar funciones de PHP en tu plantilla lo más recomendable es hacerlo con funciones y shorcodes y no sobre la plantilla
Muchísimas gracias! Funciona muy bien y me ha venido de perlas.
De nada Antonio. ¡Un saludo!