我正在尝试学习如何做一个wordpress插件,并且已经采用了样板路径。
我的文件结构如下:
我已经按照一些教程将数据保存在管理员后端中了:
现在我想在输入简码时在前端显示这些值。
因此,接下来是我不确定是否出错的地方,是在插件文件夹的根目录中打开文件 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
答案 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}}