Quiero obtener de forma dinámica los thumbnail de vimeo de los videos que tengo insertados en las clases, tengo un código personalizado que me muestra mediante un shortcode el thumbnail, y funciona correctamente en una página normal (puedes verlo aquí)
Este shortcode lo que hace es que mediante un parámetro (la URL del video de vimeo) te muestra el thumbnail, pero cuando lo integro dentro de una view no es capaz de mostrarme los videos y no se cuál puede ser el problema...
Adjunto pantallazos del código que genera el shortcode y muestra el thumbnail mediante el parámetro que le pasas y otro pantallazo del mismo código modificado para que muestre el thumbnail utilizando el contenido de un campo personalizado que contiene la URL de vimeo.
Según el tipo de campo, puede ser que types_render_field genera el campo formateado y no como URL.
Yo modificaría tu código así:
function get_vimeo_thumb( $atts =[] ){
if ( isset( $atts['video'] ) ) {
$vURL = $atts['video'];
} elseif ( isset( $atts['field'] ) ) {
global $post;
$vURL = get_post_meta( $post->ID, $atts['field'], true );
} else {
return '';
}
// we have $vURL, continue...
}
Así puedes pasar al shortcode el atributo 'video' que contiene un URL actual, ó 'field' que es el clave de un campo de entrada que tiene el URL (recordando incluir el prefijo 'wpcf-' si es un campo de Types), así:
He probado el código tal cuál pero parece que hay algún tipo de error, cuando lo copio en mi editor me señala un error, aunque no me dice cuál es... (adjunto captura) y cuando pongo el shortcode no me funciona de ninguna de las dos formas, me escupe un html con <img src="(unknow)">
Me parece que el código ha confundido a nuestra foro, en el pantallazo tuyo veo "hidden link", que no aparece in mi código (lo cual es casi igual al tuyo).
Ve el pantallazo mio que puedes usar para confirmar como debe aparecer.
Buenas;
He probado el código y sigue habiendo un problema, cuando lo incluyo dentro de la view y le paso el campo con el enlace del video no muestra ninguna imagen...
Adjunto pantallazo con la parte de HTML que muestra la vista.
Voy a poner pantallazos de todo lo que tengo, a ver si encontramos el fallo, ya que tengo puesto el prefijo pero aún así no aparece.
En los pantallazos aparecen el campo de type que almacena la URL de vimeo, la plantilla que utiliza la view y el código en el functions.php de mi tema.