【问题标题】:How to Fetch the Shortcode Parameters Value in WordPress?如何在 WordPress 中获取简码参数值?
【发布时间】:2013-06-24 09:19:42
【问题描述】:
[amazon_s3 bucket=my_bucket_name object=my_file_name.ext]

大家好,我需要知道如何获取上述简码中的参数值。例如:对象是属性,那么我如何获取对象值@​​987654322@。我正在使用 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 中,所有产品都上传到上传文件夹的媒体库中。如果他们使用直接文件路径,上面的代码是获取我的帐户页面中显示的文件名。如果我将上述短代码粘贴到产品网址中,则上述代码无助于获取文件名。所以我需要从简码中知道如何基于此获取对象值以显示文件名。

【问题讨论】:

    标签: wordpress woocommerce


    【解决方案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;
    }
    

    【讨论】:

      猜你喜欢
      • 2023-03-05
      • 2021-12-05
      • 2011-11-25
      • 2023-01-22
      • 1970-01-01
      • 2022-10-13
      • 1970-01-01
      • 1970-01-01
      • 2013-01-19
      相关资源
      最近更新 更多