A if ($fecha_evento !="")
le falta un «igual»: if ($fecha_evento !=="")
Gracias Almendrón, Lo que busco en confirmar que el campo fecha_evento no esté vacío. Por eso uso el operador != (diferente de). De todos modos he probado con !== (no idéntico) y tampoco funciona. :/
Saludos y gracias.
Tienes razón. Es que ese operador no lo uso nunca y ya ni recordaba que existía.
Lo que sí creo es que a get_post_meta está mal construido. Te falta indicarle el ID del post. Sería algo así como:
get_post_meta( get_the_ID(), 'fecha_evento', true );
Home
Chicos, ya lo solucioné. Les dejo la explicación.
$fecha_evento = get('fecha_evento');
if ($fecha_evento != "") {
$fecha = explode("-",get('fecha_evento'));
}
else {
$fecha = explode("-",get_the_date('d-M'));
}
?>
<li>
<div class="fecha-agenda"><span><strong style="text-transform:uppercase; color:white; letter-spacing: 1px;"><?php echo $fecha[1];?></strong><br>
<?php echo $fecha[0];?></span></div>
Finalmente reemplazé la función get_post_meta() por get(). Por otro lado, tuve que descartar el argumento’d-M’. Supuse que por contener una fecha, podía usarlo en fecha_evento pero al parecer es un argumento exclusivo get_the_date y get_the_time.
Espero que esto les ayude en el futuro. Saludos!
Pd: echando a perder se aprende PHP 🙂
¿Estás seguro que te funciona eso? «get(‘fecha_evento’)» no debería darte ningún resultado. Esto sí debería funcionar:
$fecha_evento = get_post_meta( get_the_ID(), 'fecha_evento', true );
Tenía la misma duda que tu, pero revisando el resto de mi archivo php descubrí que otros campos personalizados también son llamados con get() por lo que simplemente repliqué el fragmento de código y funcionó perfecto.
Por cierto, get_post_meta() forma parte del códex de WordPress, mientras que get() forma parte del protocolo de php por lo que funciona encuaquier otro cms que trabaje en php (WordPress, Drupal, etc.).
Saludos!
No entiendo nada.
Opino exactamente lo mismo que @almendron. Eso de get()
no debería funcionarte para obtener campos meta de posts. Si te funciona es que no estás trabajando con los campos meta, estarás trabajando con otra cosa.
Y por cierto, get()
no es una función que exista en PHP. ¿De dónde te has sacado eso? Si estoy equivocado por favor comparte el enlace en el manual de PHP para esa función, yo no lo encuentro y si intento utilizarla me generá un «Fatal error: Call to undefined function get()».
Lo que único que se me ocurre para que ese código te funcione con meta field es que tengas algún plugin u otro código tuyo o de terceros que defina esa función.
Por cierto, hace un tiempo publiqué un post sobre este tema, igual te interesa: Obtener posts entre fechas alamacenadas en custom fields.
Perdón chicos, retiro lo dicho de get() en php (me confundí con get y post usado en formularios).
Estoy trabajando con una plnatilla heredada de otro sitio web. Talvez tienen razón y el get() que estoy ocupando fue definido en otro archivo. Más allá de eso, lo cierto es que get() me ha funcionado y get_post_meta() no arroja resultados.
Saludos,
Por cierto, los campos personalizados los gestiono con el plugin Magic Fields. Pudiera ser que get() sea definido a través de ese plugin.
Saludos,