O未将Add_Query_Arg参数插入到HTML的嵌入Vimeo

时间:2014-09-08 作者:dmoz

我试图在我的主页模板上为嵌入的Vimeo视频添加一些参数。我使用了解决方案(与add_query_arg) 这里的@splashingpixels建议:Add parameters vimeo videos using wordpress embeds

add_query_arg 将参数添加到URL确定,然后var_dump 正在将URL文本打印到页面,以确认正在添加参数。

下面的嵌入式视频var_dump 没有获取参数的URL,只有正常的Vimeo URL。

我没有收到任何错误WP_DEBUG.

这是测试现场:http://thegallerymusic.com/test/

这是我的循环代码:

<?php $args = array( \'post_type\' => \'films\', \'posts_per_page\' => 12 );
          $the_query = new WP_Query( $args ); ?>

    <?php if ( $the_query->have_posts() ) : ?>
    <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>

            <?php /* Get the current post ID. */
                    global $post;
                    $post_id = $post->ID;
                  /* If we have a post ID, proceed. */
                    if ( !empty( $post_id ) ) { ?>

                    <div class="film_wrap col-md-4">

                        <?php // <h2 class="film_title"><?php the_title(); ?><?php //</h2> ?>

                        <?php $videourl = get_post_meta( $post_id, \'film_embed\', true );
                              $videourl = add_query_arg( 
                                array(\'title\'    => \'0\',
                                      \'byline\'   => \'0\',
                                      \'portrait\' => \'0\',
                                      \'badge\'    => \'0\',), $videourl );
                                var_dump($videourl);

                              if ( $videourl != \'\' ) {
                                echo wp_oembed_get( $videourl ); 
                              } ?>

                        <?php if ( get_post_meta( $post_id, \'film_textarea\', true ) ) : ?>
                            <div class="film_description">
                                <p><?php echo get_post_meta( $post_id, \'film_textarea\', true ); ?></p>
                            </div>
                        <?php endif; ?>

                    </div>

                        <?php wp_reset_postdata(); ?>

                    <?php } else { ?>

                        <p><?php _e( \'Sorry, no posts matched your criteria.\' ); ?></p>

                    <?php } ?>

        <?php wp_link_pages( array(
            \'before\' => \'<div class="page-links">\' . __( \'Pages:\', \'_tk\' ),
            \'after\'  => \'</div>\',
        ) ); ?>

    <?php endwhile; ?>
    <?php endif; ?>

1 个回复
最合适的回答,由SO网友:Otto 整理而成

取出var\\u转储。这就是调试代码,它正在转储变量,以便您可以看到它是什么。

编辑:好吧,我想你问错了问题,你链接到的问题中的另一个人也问错了。

在发送到wp\\u ombed\\u URL()的URL上添加其他查询参数不会导致oembed系统将其发送到oembed提供程序端点。您需要将它们作为参数添加到提供程序中,而不是作为参数添加到您请求嵌入的URL中。

您需要使用过滤器将参数添加到实际的oembed请求中,而不是URL参数中。像这样:

add_filter(\'oembed_fetch_url\',\'example_add_vimeo_args\',10,3);
function example_add_vimeo_args($provider, $url, $args) {
    if ( strpos($provider, \'//vimeo.com/\') !== false ) {
        $args = array(
            \'title\' => 0,
            \'byline\' => 0,
            \'portrait\' => 0,
            \'badge\' => 0
        );
        $provider = add_query_arg( $args, $provider );
    }
    return $provider;   
}
请参见,URL是要嵌入的视频的URL。WordPress联系该提供商的oembed端点以获取该视频的嵌入代码。如果要更改来自该端点的响应,则必须更改端点的参数,而不是它所询问的URL的参数。

结束

相关推荐

如何将POST中的oEmbeded URL替换为实际的嵌入的HTML

我想要的是将推特oEmbed系统的输出输入到我的实际帖子中。IMHO嵌入输出本身是高质量的语义HTML,我宁愿将其放在帖子中,也不要放在嵌入元数据中,以防js停止工作(在这种情况下,推特将显示为合理的blockquote)。因此,我需要的是劫持oEmbed系统,并在处理后,将帖子中的嵌入URL替换为来自Twitter的HTML。显然,该解决方案还应该能够处理其他类型的嵌入。更新:我只是想澄清一下,我知道oEmbed在默认情况下是如何工作的(即,当对帖子内容运行“the\\u content”过滤器时,UR