我试图在我的主页模板上为嵌入的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; ?>
最合适的回答,由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的参数。