我尝试为内容和边栏设置不同的视频oembed大小。我可以使用embed\\u defaults过滤器设置视频大小。但是这个过滤器适用于整个网站,我需要在侧边栏中有更小的视频大小。所以,我尝试向loop\\u start添加操作,并在此处检查主循环是否正在运行。
function test_main_loop( $query ) {
global $wp_the_query;
if ( $query === $wp_the_query ) {
add_filter( \'embed_defaults\', \'big_embed_defaults\' );
}
else {
add_filter( \'embed_defaults\', \'small_embed_defaults\' );
}
}
add_action( \'loop_start\', \'test_main_loop\' );
我可以在add\\u action()函数中调用add\\u filter()吗?一切都正常,但我不确定这是否是正确的解决方案?或者,您是否有其他想法,如何仅通过WordPress oembed支持(无插件)实现不同的视频大小?谢谢你的帮助。。。
SO网友:Bainternet
更好的解决方案是在模板中实际调用之前添加过滤器挂钩,并在调用侧栏之前使用dynamic_sidebar
或任何使用此选项的对象:
add_filter( \'embed_defaults\', \'small_embed_defaults\' );
dynamic_sidebar(\'my_sidebar\');
remove_filter( \'embed_defaults\', \'small_embed_defaults\' );
主回路也是如此:
add_filter( \'embed_defaults\', \'big_embed_defaults\' );
while(have_posts()){
//YOUR LOOP...
}
remove_filter( \'embed_defaults\', \'big_embed_defaults\' );