0
[amazon_s3 bucket=my_bucket_name object=my_file_name.ext]

大家好,我需要知道如何获取上述简码中的参数值。例如:对象是属性,那么我如何获取对象值my_file_name.ext。我正在使用 woocommerce s3 插件。我不确定我自定义了 woocommerce 以获取我的帐户页面中显示的文件名,这是代码。

 function filename_wc_downloads( $link, $download )
    {
           $order = new WC_Order( $download['order_id'] );
        $download_file_urls = $order->get_downloadable_file_urls( 
            $download['product_id'], 
            null, 
            $download['download_id'] 
        );

        foreach( $download_file_urls as $key => $value )
        {
            if( $value == $download['download_url'] )
            {
                $url_parts = explode( '/', parse_url( $key, PHP_URL_PATH ) );
                $file_name = end( $url_parts );
                $link = '<a href="' 
                    . esc_url( $download['download_url'] ) 
                    . '">' 
                    . $download['download_name'] 
                    . '</a> <small>( ' 
                    . $file_name 
                    . ' )</small>';
            }               
        }
        return $link;
    }

在 Woocommerce 中,所有产品都上传到上传文件夹的媒体库中。如果他们使用直接文件路径,上面的代码是获取我的帐户页面中显示的文件名。如果我将上述短代码粘贴到产品网址中,则上述代码无助于获取文件名。所以我需要从简码中知道如何基于此获取对象值以显示文件名。

4

1 回答 1

1

amazon_s3 是包含 $atts 存储桶和对象的简码

当您使用 wordpress 功能时 add_shortcode('amazon_s3', 'your_function_name');

它会自动将 [amazan_s3 .... 中定义的属性转换为 $atts

例如

function your_funnction_name($atts) {
    extract(shortcode_atts(array(
        'bucket' => '',
        'object' => ''
    ), $atts));

   return $object;
}
于 2013-06-24T09:43:58.027 回答