Usar filtro [incrustar] en archivos de plantilla

9

WordPress incrusta automáticamente un video de youtube si uso:

[embed] http://www.youtube.com/watch?v=Xog1T5dUxcw [/embed ]

Esto es genial, pero no funciona si lo uso en un archivo de plantilla. Tengo un campo personalizado donde el administrador puede poner una URL a un video de YouTube. Quiero obtener el video en la publicación única usando el siguiente código:

<?php
  $custom = get_post_custom($post->ID);
  $url = $custom['_videoLink'][0];
?>
<div class="video">
  [embed]<?php $url; ?>[/embed]
</div>

¿Cómo puedo convertir la URL de Youtube en una URL incorporada usando la función estándar de WordPress [incrustar]?

Sjoerd Boerrigter
fuente

Respuestas:

14

Usar en su wp_oembed_get( $url )lugar. Asegúrese de echohacerlo en su archivo de plantilla. Entonces, algo como esto:

<?php
// tot necessary to set this but good if $url is coming from a function
$url = 'https://www.youtube.com/watch?v=jofNR_WkoCE';

// echo the function in your template to render the video
echo wp_oembed_get( $url );
?>
D3XT3R
fuente
Fácil y la mejor solución para este problema. +1
Sam
10

Normalmente, debe usar do_shortcode en una plantilla para colocar un shortcode fuera del contenido, sin embargo, he tenido problemas con el shortcode incrustado específicamente y no pude hacerlo funcionar de esa manera. Encontré esta solución que funciona, pero tal vez hay una manera de hacerlo con do_shortcode y me he perdido algo.

<?php
$custom = get_post_custom($post->ID);
$url = $custom['_videoLink'][0];
if($url):
    $shortcode = '[embed]'.$url.'[/embed]';
    global $wp_embed;
    echo $wp_embed->run_shortcode($shortcode);
endif;
?>
Milo
fuente
También puede hacer echo do_shortcode ($ shortcode)
keatch
@keatch - ¿Has probado esto específicamente con el embedshortcode de WP ? como mencioné, ese específico no funcionaría para mí, mientras que otros códigos cortos normalmente lo hacen. No he investigado mucho por qué. Esto tampoco fue con la versión más reciente de WP.
Milo
1
Sé que esto es antiguo, pero solo para señalar que todavía tengo el mismo problema ahora en 2013 con el shortcode incrustado que no funciona en los archivos de plantilla. Sin embargo, la solución anterior funcionó muy bien.
Eckstein