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 では、すべての製品がアップロード フォルダーのメディア ライブラリにアップロードされます。上記のコードは、直接ファイル パスを使用している場合に、アカウント ページに表示されるファイル名を取得するためのものです。上記のショートコードを製品 URL に貼り付けた場合、上記のコードはファイル名の取得に役立ちません。したがって、ショートコードから、これに基づいてオブジェクト値を取得してファイル名を表示する方法を知る必要があります。

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 に答える