Cómo reemplazar la imagen destacada de WordPress con un video

2 ene 2017, 13:05:45
Vistas: 17.6K
Votos: 2

Necesito reemplazar las imágenes destacadas en páginas con un video cuando ciertos posts contengan un video de YouTube, Vimeo u otros servicios de alojamiento de videos permitidos por WordPress.

Aquí está el pseudocódigo que quiero usar en una página personalizada:

if ( has_post_thumbnail( get_the_ID() {
    if has_video(pseudocódigo para verificar si el post individual contiene video de YouTube)  {
// mostrar reproductor de video
    } else {
// mostrar imagen destacada
    }
}

¿Algún consejo?

4
Comentarios

Esto depende de la salida de tu tema, siempre puedes crear un campo personalizado que almacene el enlace del video e incrustarlo si se encuentra en la salida de tu tema

Tunji Tunji
2 ene 2017 13:10:05

Un consejo sería revisar tu single.php y ver dónde está mostrando la miniatura. Necesitarás envolver eso con una declaración if/then que diga si hay un video (campo personalizado) entonces mostrar el video en lugar de la imagen. Sin tu código o intentos, no hay forma de ayudar más.

rudtek rudtek
2 ene 2017 19:56:54

No estoy seguro de cuál es la pregunta aquí. ¿Cuál es el problema real con el que te encuentras al intentar codificar la solución?

Mark Kaplun Mark Kaplun
2 ene 2017 20:27:36

@MarkKaplun Necesito reemplazar la imagen destacada en mis páginas de WordPress con un reproductor de video. O anular automáticamente cualquier imagen destacada existente con un reproductor de video si la publicación individual contiene un enlace de video de YouTube. ¿He sido lo suficientemente claro ahora? ¡Gracias!

Knott Knott
2 ene 2017 20:50:47
Todas las respuestas a la pregunta 2
1

Digamos, para simplificar, que estás usando ACF. Necesitas crear un campo de enlace de video una vez que ACF esté instalado y asignarlo a las publicaciones. Luego, en la publicación donde deseas que aparezca un video, añade la URL. Normalmente asigno este campo como un campo de texto y luego hago que los usuarios ingresen el ID de YouTube (la última cadena de texto después del enlace youtube.com).

Por ejemplo, si el enlace del video fuera: https://www.youtube.com/J-ek8drxFJA

el usuario ingresaría solo J-ek8drxFJA en el campo.

Ahora añade este código a tu copia de single.php que está en la carpeta de tu tema hijo

Observa que cambié la declaración if. No es necesario buscar la miniatura si vas a usar un video:

if( get_field( 'video_link' ) ) {
    echo 'este es mi ID de enlace de video ' . get_field( 'video_link' );   // o muestra el reproductor de video (ver abajo)
} else {
    if( has_post_thumbnail( get_the_ID() ) ){
        // mostrar miniatura de la publicación
    }

    //sin video o foto
}

Ahora, por supuesto, si quieres mostrar el video, querrás hacer algo como esto en su lugar:

if( get_field( 'video_link' ) ) {
    $videoid = get_field( 'video_link' );
    echo '<h2>Enlace de Video</h2><p>mira nuestro video:</p><iframe width="420" height="315" src="https://www.youtube.com/embed/' . $videoid . '" frameborder="0" allowfullscreen></iframe>';
} else {
    if( has_post_thumbnail( get_the_ID() ) ) {
        // mostrar miniatura de la publicación
    }
    
    //sin video o foto
}

Obviamente puedes modificar un poco el código para adaptarlo a tus necesidades.

2 ene 2017 20:53:10
Comentarios

Aunque se aceptan respuestas de calidad de cualquier tipo, ten en cuenta que las respuestas que remiten al usuario a plugins de terceros a veces no son bien recibidas. Este tipo de respuestas tienden a generar preguntas adicionales sobre dicho plugin de terceros, y ese tipo de preguntas están Fuera de Tema.

Howdy_McGee Howdy_McGee
2 ene 2017 22:40:08
0

Creo que deberías probar este plugin: https://wordpress.org/plugins/featured-video-plus/

Si no te gusta usar plugins adicionales, definitivamente deberías revisar su código como referencia. Puedes analizar su código y personalizarlo según tus necesidades.

12 abr 2018 01:42:24