我正在尝试显示产品的视频内容。不想禁用产品缩略图,但只要产品图库中有可用的视频内容,就显示视频内容。视频内容将上传到媒体库和Youtube。我试过几种方法,但都不管用。
1.**使用ACF:**我创建了自定义字段product_video
,字段类型为oembed
。我使用下面的代码。没有错误消息,但视频不显示或不显示。
add_action( 'woocommerce_before_shop_loop_item_title', 'action_template_loop_product_thumbnail', 9 );
function action_template_loop_product_thumbnail() {
global $product;
$file = get_field('product_video', $product->get_id());
// $file2 = get_field('product_video_text', $product->get_id());
if( isset($file['url']) && ! empty($file['url']) ) {
remove_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10 );
echo '<video width="200" muted loop autoplay src="' . $file['url'] . '"></video>';
// echo $file2 ;
}
}
为什么看不出来?
2)**Use product video plugin .**它在前端工作,但文件afpv_front.js
中有一个错误Uncaught TypeError: jQuery(...).slick is not a function
。我排队的slick.js
认为它会纠正这个问题,但它没有。它带来了更多的错误。
function enqueue_slick() {
if(is_shop() || is_product() || is_product_category() ) {
wp_enqueue_script( 'slick-css', get_stylesheet_directory_uri() . '/assets/js/slick/slick.css'); //do not mind the relevancy of the folder name, just a quick fix for now
wp_enqueue_script( 'slick-theme-css', get_stylesheet_directory_uri() . '/assets/js/slick/slick-theme.css');
wp_enqueue_script( 'slick-min-css', get_stylesheet_directory_uri() . '/assets/js/slick/slick.min.js');
}
}
add_action( 'wp_enqueue_scripts', 'enqueue_slick' );
它会产生如下错误:Uncaught SyntaxError: expected expression, got '.'
来自slick.cssUncaught SyntaxError: illegal character U+0040
来自slick-theme.css:1
Error: Promised response from onMessage listener went out of scope
为产品添加视频内容的正确方法是什么?
2条答案
按热度按时间qvtsj1bj1#
对于ACF的第一个选项-您是否尝试获取$file变量中的内容?如果您没有收到错误,则可能是错误的密钥(例如,不是“url”)或空“product_video”字段。作为一个快速测试,您可以在'if'语句之前使用print_r($file)进行测试。
对于第二个选项-我可以建议您将脚本设置为依赖于jquery,如:
同时,样式的连接应该使用wp_enqueue_style,而不是wp_enqueue_script。
llycmphe2#
我也在为同样的问题而挣扎,在他们的网站上我看到了同样的错误。没有尝试过ACF。
但是当我在关闭标签之前在我的头中添加这个打击脚本时,它就会起作用。
不是很好,但它为我解决了这个问题。
Screenshot to add a script in header
我也尝试了这个WooCommerce Product Video Plugin这个插件,看起来他们都使用了相同的光滑滑块,但这对我来说在商店和单一产品页面上都很好。