从插件函数中的快捷码中获取参数

时间:2018-01-09 作者:Frank Groot

我正在尝试在我的短代码中传递变量,这样我就可以用id向API发出请求。

短代码如下所示:[product id="2"]

在我的函数中,我想对“2”做一些事情。

迄今为止的代码:

function getSingleProduct( $attr ) {
    shortcode_atts( [
      \'id\' => \'0\',
    ], $attr  );

    // Do someting with the "2".
    do_request( \'GET\', get_api_url() . \'api/product/\' . "2" ); // This "2" comes from the shortcode
}

add_shortcode( \'product\', \'getSingleProduct\' );

1 个回复
最合适的回答,由SO网友:cybmeta 整理而成

如果您有此短代码:

[product id="2"]
其重新定义如下:

add_shortcode( \'product\', \'getSingleProduct\' );
function getSingleProduct( $atts ) {
    shortcode_atts( [
      \'id\' => \'0\',
    ], $atts  );

    // Do someting with the "2".
    do_request( \'GET\', get_api_url() . \'api/product/\' . "2" ); // This "2" comes from the shortcode
}
您可以像这样获得shortcode参数:

add_shortcode( \'product\', \'getSingleProduct\' );
function getSingleProduct( $atts ) {
    // $atts is an array with the shortcode params
    // shortcode_atts() function fills the array with the
    // default values if they are missing
    $atts = shortcode_atts( [
      \'id\' => \'0\',
    ], $atts  );

    $id = $atts[\'id\'];

    do_request( \'GET\', get_api_url() . \'api/product/\' . $id );

}

结束