【问题标题】:Finding src for WooCommerce downloadable product files to display in Audio Shortcode查找 WooCommerce 可下载产品文件的 src 以显示在音频短代码中
【发布时间】:2019-03-05 22:34:09
【问题描述】:

我正在尝试将默认的 Wordpress 音频短代码添加到来自 WooCommerce 的 content-single-product.php 模板。我知道如果没有指定默认短代码应该找到任何附加的音频,但它的行为不是这样。我猜 WooCommerce 可下载产品处理文件附件的方式不同?

这是我目前使用的代码”

$ca_audio = $product->get_id();
$attr = array(
	'src'      => $ca_audio,
	'loop'     => '',
	'autoplay' => '',
	'preload'  => 'none'
);
echo wp_audio_shortcode( $attr );

这只是显示产品 ID 而不是播放器。如果我将 src 留空,它会显示一个没有音频的空播放器。如果我将直接链接指向它将播放的文件,但我需要它自动为每个帖子自动查找 .mp3 文件。

【问题讨论】:

    标签: php wordpress audio woocommerce shortcode


    【解决方案1】:

    我使用以下代码显示音频文件

    $ca_audio = $product->get_id();
    
    $_product = wc_get_product( $ca_audio );
    $downloads = $product->get_files();
    
    foreach( $downloads as $key => $each_download ) {
      	
    	if ( strpos( $each_download["file"] , '.mp3') !== false) {
    	    $attr = array(
    			'src'      => $each_download["file"],
    			'loop'     => '',
    			'autoplay' => '',
    			'preload'  => 'none'
    		);
    		echo wp_audio_shortcode( $attr );
    		break;
    	}
    }

    音频文件已正确嵌入,但未播放。当我直接打开文件时,它会给出 401 Forbidden 错误。它是 woocommerce 可下载的产品访问安全功能。也许您需要在每个产品中手动嵌入音频文件。

    【讨论】:

    • 嗨,马尼克。有一个插件“WooCommerce 的音乐播放器”似乎会以我想要实现的方式自动提取文件,但我不能将它添加到我的产品页面,因此它会为每个产品位置提取音频网站(即主页最新产品部分,相关产品)并陷入该网站。我想知道他是如何绕过 WooCommerce 产品访问安全性的?
    • 我提到的插件的作者说他可以通过“使用 PHP 脚本作为代理”来做到这一点。我对此一点也不熟悉,我可以用最少的代码实现吗?
    • 您只能为使用此插件的产品页面启用音乐播放器插件。插件管理器 [link]wordpress.org/plugins/plugin-organizer 如果音频文件也加载到相关产品上 - 那么您可以使用 css 隐藏它们
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-08
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 2022-01-26
    • 2017-08-19
    相关资源
    最近更新 更多