[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中,所有产品都会上传到上传文件夹的媒体库中。上面的代码是如果他们使用直接文件路径,则在我的帐户页面中获取文件名show。如果我在产品网址中粘贴了上述短代码,则上述代码无法获取文件名。所以我需要从短代码知道如何获得基于此的对象值来显示文件名。
答案 0 :(得分:1)
amazon_s3是包含$ atts bucket和object
的短代码当你使用wordpress函数add_shortcode('amazon_s3','your_function_name');
它会自动将[amazan_s3 ....中定义的属性转换为$ atts
e.g。
function your_funnction_name($atts) {
extract(shortcode_atts(array(
'bucket' => '',
'object' => ''
), $atts));
return $object;
}