Разработка плагинов для WordPress Boilerplat - отображение сохраненных полевых данных - PullRequest
0 голосов
/ 09 сентября 2018

Я пытаюсь узнать, как создать плагин для 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 и идентификатор партнера Smarkets от администратора.

Я попытался добавить этот код в функцию шорткода выше

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 голосов
/ 09 сентября 2018

Короткие коды в WP всегда возвращают данные. Итак, в вашем первом примере:

function horse_odds_shortcode() {
    return 'display plugin data here<br>';
}

Это работает, потому что шорткод возвращает строку для шорткода для отображения. Чтобы получить шорткод для отображения сохраненных данных:

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;
}

Если вы хотите показать больше данных, возможно, обернутых с выводом HTML, тогда используйте выходные буферы:

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();
}
...