WordPress Boilerplat插件开发-显示保存的字段数据

时间:2018-09-09 09:55:16

标签: wordpress boilerplate

我正在尝试学习如何做一个wordpress插件,并且已经采用了样板路径。

我的文件结构如下:

enter image description here

我已经按照一些教程将数据保存在管理员后端中了:

enter image description here

现在我想在输入简码时在前端显示这些值。

因此,接下来是我不确定是否出错的地方,是在插件文件夹的根目录中打开文件 horse-exchange.php ,然后添加以下内容代码:

    function horse_odds_shortcode() {



    return 'display plugin data here<br>';

//DISPLA VALUES FROM BACKEND

}
add_shortcode('horse_odds', 'horse_odds_shortcode');

现在,如果我创建一个页面并键入[horse_odds],它将显示“在此处显示插件数据”。

但是,我要显示的是来自后台的betfair会员ID和smarkets会员ID。

我尝试在上面的简码功能中添加此代码

function horse_odds_shortcode() {

$options = get_option($this->plugin_name);

        // Cleanup
        $betfair_show = $options['betfair_show'];
        $betfair_username = $options['betfair_username'];
        $betfair_password = $options['betfair_password'];
        $betfair_affiliate_id = $options['betfair_affiliate_id'];
        $smarkets_show = $options['smarkets_show'];
        $smarkets_affiliate_id = $options['smarkets_affiliate_id'];


echo $smarkets_affiliate_id;
    return 'display plugin data here<br>';

//DISPLA VALUES FROM BACKEND

}
add_shortcode('horse_odds', 'horse_odds_shortcode');

但是,代码不起作用。有谁知道我要去哪里错了?

这是我的插件代码:https://www.dropbox.com/s/ano5hg7twtp21sd/horse-exchange.zip?dl=0

1 个答案:

答案 0 :(得分:0)

WP中的短代码总是返回数据。因此,在您的第一个示例中:

function horse_odds_shortcode() {
    $options = get_option($this->plugin_name);

    // Cleanup
    $betfair_show = $options['betfair_show'];
    $betfair_username = $options['betfair_username'];
    $betfair_password = $options['betfair_password'];
    $betfair_affiliate_id = $options['betfair_affiliate_id'];
    $smarkets_show = $options['smarkets_show'];
    $smarkets_affiliate_id = $options['smarkets_affiliate_id'];

    return $smarkets_affiliate_id;
}

这是可行的,因为简码正在返回要显示的简码字符串。要获取显示您保存的数据的简码:

function horse_odds_shortcode() {
    $options = get_option($this->plugin_name);

    // Cleanup
    $betfair_show = $options['betfair_show'];
    $betfair_username = $options['betfair_username'];
    $betfair_password = $options['betfair_password'];
    $betfair_affiliate_id = $options['betfair_affiliate_id'];
    $smarkets_show = $options['smarkets_show'];
    $smarkets_affiliate_id = $options['smarkets_affiliate_id'];

    ob_start();

    ?>

    <p>
        Welcome back, <?php echo $betfair_username; ?>! Your Betfair affiliate ID is:
    </p>

    <div class="betfair-id">
        <strong>
            <?php echo $betfair_affiliate_id; ?>
        </strong>
    </div>

    <?php

    return ob_get_clean();
}

如果您想显示更多数据(可能包装有HTML输出),请使用输出缓冲区:

{{1}}