如何将参数传递给短代码?

时间:2017-06-12 作者:Russell Eubanks

我看过一些关于如何向短代码添加参数的文章,这样我就可以说[my-shortcode post_id=7], 将帖子ID传递给短代码。

假设我的页面上有一个表单,用户输入或选择了一些内容,基于此,我想使用用户提供的参数刷新由快捷码表示的内容。

这是如何实现的?

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

假设您有一个表单,它以以下方式发送数据:

<form method="post" name="car-select" action="<?php echo site_url(\'/my-page/\'); ?>">
    <select name="make">
        <option value="benz">Benz</option>
        <option value="bmw">BMW</option>
        <option value="audi">Audi</option>
    </select>
    <input type="submit" value="Find my dream car!"/>
</form>
现在你想根据用户的选择查询一些帖子,对吗?这就是$_POST 方便快捷:

add_shortcode(\'my-shortcode\',\'my_shortcode_function\');
function my_shortcode_function($atts){
    // Get the ID from shortcode
    $id = $atts[\'post_id\'];
    // Check if the form data has been sent
    if (isset($_POST[\'make\']) && $id){
        $car_manufacturer = $_POST[\'make\'];
        //Now, you have the form\'s data. Do whatever you want with it
        return $my_shortcode_values;
    }
}
您必须扩展此代码以满足您的需要,例如定义没有表单数据时要做什么。

结束