• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar al pie de página
labarta

Labarta

  • Blog
  • Vídeos Docker
  • Vídeos entrevistas
  • Dominios
  • Hosting
  • Quién soy

Mostrar campos personalizados en WordPress

08/12/2017

vista-12

Mostrar campos personalizados en WordPress

 

Una de las cosas más desesperantes es cuando quieres mostrar campos personalizados en WordPress.

 

Esto es especialmente complicado cuando empiezas a trabajar con WordPress. Los campos personalizados están ahí, solo tienes que ir a "Opciones de pantalla" en la parte superior derecha de tu escritorio WP  y hacer clic sobre Campos personalizados.

 

campos-personalizados

 

Ahora ya están disponibles en el escritorio, en la parte inferior, pulsamos sobre Nuevo e inmediatamente puedes añadir el Nombre y el Valor del campo. En nuestro ejemplo vamos a poner tres:

  • Libro : El vendedor más grande del mundo
  • Autor : Og Mandino
  • Formato: Pdf

Perfecto damos a Publicar y en ver página (o ver post) no vemos estos campos.  ¿Por qué?

La respuesta yo no la sé, pero voy a intentar explicar como solucionar esto.

Hay mucha información en Google y en YouTube sobre ello, pero para la mayoría de personas que utilizan WordPress sin ser programadores ni desarrolladores las explicaciones son bastante complejas.

Yo voy a explicar aquí algunas de la soluciones, que en principio parecen fáciles y sus inconvenientes.

 

Primera:  

Para que esos campos se vean en nuestra web, bastará con insertar el siguiente código en el lugar indicado que en el caso de entradas lo habitual es en:

 /wp-content/themes/nombre_tema/page.php o single.php :

<?php the_meta(); ?>

Vale sí, funciona, pero en Twentytwelve, pero en otros temas hay que buscar el sitio apropiado y además si cambiamos de tema no se nos mostrarán los datos y tendremos que volver a averiguar donde hay que poner el código, que además lo correcto sería ponerlo en un tema hijo (child theme).

Podemos ver la información sobre esto en : https://codex.wordpress.org/

 

Segunda: 

Si estás usando el theme Twenty Seventeen y quieres mostrar los campos personalizados entonces las modificaciones tienes que hacerlas en este archivo : template-parts/post/content.php.

En el archivo content.php en la línea 71 aproximadamente, dentro de la condición que usa la función is_single(), puedes agregar el siguiente código:

$cf_libro = get_post_meta( get_the_ID(), 'Libro', true );
$cf_autor = get_post_meta( get_the_ID(), 'Autor', true );
$cf_formato = get_post_meta( get_the_ID(), 'Formato', true );
if ($cf_libro) echo "Libro: ".$cf_libro."<br>";
if ($cf_autor) echo "Autor: ".$cf_autor."<br>";
if ($cf_formato) echo "Formato: ".$cf_formato."<br>";

 

Bien, sí funciona, pero estamos en lo mismo que el caso anterior.

Está información está en : https://decodecms.com/

 

Tercera:

Esta solución es usando un "shortcode" y es la que voy a poner en práctica.

Para ello tenemos dos opciones, vamos a  Apariencia/ Editor  y editamos el fichero functions.php  agregando el siguiente código:


add_shortcode('field', 'shortcode_field');
function shortcode_field($atts){
extract(shortcode_atts(array(
'post_id' => NULL,
), $atts));
if(!isset($atts[0])) return;
$field = esc_attr($atts[0]);
global $post;
$post_id = (NULL === $post_id) ? $post->ID : $post_id;
return get_post_meta($post_id, $field, true);
}

 

La otra, que es la recomendable y la que voy a usar es crear un Snippet , para ello tenemos que subir el plugin Code Snippets   y activarlo. Creamos un snippet que podemos darle el nombre de Shortcode,  pegamos el código y activamos el Snippet.

 

code-snippet

 

snippet

 

Con esta solución aunque actualicemos el tema o que hagamos un cambio de tema, no vamos a perder nada.

Una vez hecho tan sólo nos vamos a la entrada donde queremos añadir los campos personalizados y agregamos los siguientes shortcodes de esta forma:

[field "libro"]
[field "autor"]
[field "formato"]

Perfecto funciona bien y además podemos maquetarlo directamente desde el editor Visual, modificando: tamaño letra, color, etc. etc.

 

vista-10

 

Una opción fácil y que funciona a las mil maravillas, tanto en entradas como en páginas.

 

vista-11

 

Cuarta:

Muy parecida al anterior, pero podemos decir que funciona al revés.

Creamos también un Snippet al que vamos a llamar "Insertar PHP"  y le ponemos en siguiente código:


if( ! function_exists('jml_insertar_php') )
{
function jml_insertar_php($content)
{
$jml_content = $content;
preg_match_all('!\[insertar_php[^\]]*\](.*?)\[/insertar_php[^\]]*\]!is',$jml_content,$jml_matches);
$jml_nummatches = count($jml_matches[0]);
for( $jml_i=0; $jml_i<$jml_nummatches; $jml_i++ )
{
ob_start();
eval($jml_matches[1][$jml_i]);
$jml_replacement = ob_get_contents();
ob_clean();
ob_end_flush();
$jml_content = preg_replace('/'.preg_quote($jml_matches[0][$jml_i],'/').'/',$jml_replacement,$jml_content,1);
}
return $jml_content;
}
add_filter( 'the_content', 'jml_insertar_php', 9 );
}

Fuente del código:  https://www.willmaster.com

 

insertar-php

 

Seguidamente activamos el snippet y ahora vamos a la entrada o página donde queremos mostrar los campos personalizados y ponemos lo siguiente:


[insertar_php]$cf_libro = get_post_meta( get_the_ID(), 'Libro', true );
$cf_autor = get_post_meta( get_the_ID(), 'Autor', true );
$cf_formato = get_post_meta( get_the_ID(), 'Formato', true );if ($cf_libro) echo "Libro: ".$cf_libro."<br>";
if ($cf_autor) echo "Autor: ".$cf_autor."<br>";
if ($cf_formato) echo "Formato: ".$cf_formato."<br>";[/insertar_php]

insertar-1

 

Este código entre los dos shortcodes ya lo hemos visto anteriormente.

Esto también funciona bien y también podemos añadirle CSS.

 

insertar-2

 

Para no perder este código, tenemos la posibilidad de guardarlo en un snippet (el cual no vamos a activar).

Como hemos visto estas dos opciones últimas son parecidas y cada uno puede optar para la que mejor se adapte a su conveniencia.

Espero con este artículo poder ayudar a alguna persona que esté lidiando con este tema de ver la forma de mostrar los campos personalizados en WordPress.

 

También puedes descargar desde el repositorio de WordPress el plugin WP Documents Library  y modificarlo a tu gusto.

 


Si te ha gustado este artículo, por favor, comparte - Gracias -


Artículos Relacionados

  • vista-cpt Custom Post Types en WordPress
  • imagen-url Mostrar campos personalizados en WordPress (Metabox 2)
  • Campos personalizados en WordPress (Metabox)

Blog,  Es wordpress custom-fields

  • Todas las entradas
  • Github
  • Meetup WordPress
  • Política de cookies

Footer

GINERNET - Servidor VPS

Ginernet

GeneratePress - Tema WordPress

GeneratePress

GINERNET - Hosting WordPress

Ginernet2

OnlyOffice - Online Office

Usamos ONLYOFFICE Online Office

Copyright © 2025 · Labarta - Powered by : Labarta

Usamos cookies en nuestro sitio web para brindarle la experiencia más relevante recordando sus preferencias y visitas repetidas. Al hacer clic en “Aceptar todo”, acepta el uso de todas las cookies. Sin embargo, puede visitar "Configuración cookies" para proporcionar un consentimiento controlado.
Configuración cookiesAceptar todo
Manage consent

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Siempre activado
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
CookieDuraciónDescripción
cookielawinfo-checkbox-analytics11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional11 monthsThe cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
viewed_cookie_policy11 monthsThe cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
GUARDAR Y ACEPTAR