繁体   English   中英

短代码参数在 WordPress 中不起作用

[英]Shortcode parameter not working in WordPress

我正在尝试从简码传递 url 中的金额参数。 from 和 to 属性工作正常,但 amount 属性不起作用。 output 显示值为 1。

使用这样的简码:

[exchange_rate from="USD" to="EUR" amount="100"]

function exchange_rate_shortcode($atts) {
    $atts = shortcode_atts(array(
        'from' => 'AED',
        'to' => 'NPR',
        'amount' => '1',
    ), $atts);

    $url = "https://api.fastforex.io/convert?from=" . $atts['from'] . "&to=" . $atts['to'] . "&amount=" . $atts['amount'] . "&api_key=xxxx-xxxxx-xxxx";

    $result = file_get_contents($url);
    $result = json_decode($result, true);
    return number_format((float)$result['result']['rate'], 2, '.', '') . " " . $atts['to'];
}

add_shortcode('exchange_rate', 'exchange_rate_shortcode');

也许您以某种方式将“数量”一词写错了,因此发生了错误。 为避免混淆,请使用build_query function。

您的代码将如下所示:htt

function exchange_rate_shortcode($atts)
{
    $atts = shortcode_atts(array(
        'from'    => 'AED',
        'to'      => 'NPR',
        'amount'  => '1',
        'api_key' => 'xxxx-xxxxx-xxxx',
    ), $atts);

    // to make sure the correct value type is specified
    $atts['amount'] = (float)$atts['amount'];
    $url            = "https://api.fastforex.io/convert?" . build_query($atts);
    echo $url;
    $result = file_get_contents($url);
    if ( ! empty($result)) {
        $result = json_decode($result, true);

        return number_format((float)$result['result']['rate'], 2, '.', '') . " " . $atts['to'];
    }

    return '';
}

add_shortcode('exchange_rate', 'exchange_rate_shortcode');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM