自定义WordPress Shortcode,不能代替echo返回

时间:2014-05-07 00:00:18

标签: php wordpress return echo shortcode

此代码直接放入页面内容时效果很好。

<font color=#ff0000> 
<?php global $current_user;
  get_currentuserinfo();

    echo $current_user->display_name . "\n"; 
    echo 'Level: ' . $current_user->level . "\n <br>";

?>
</font>

结果显示'Sam level 65'

但是,当我将其转换为短代码并尝试用return替换echo时,wordpress会中断,所有屏幕都会变为空白。 这是我尝试过的一个例子:

// Add Shortcode
function custom_shortcode() {

// Code
<font color=#ff0000> 
<?php global $current_user;
  get_currentuserinfo();

  $output = $current_user->display_name . "\n"; 
  $output .= 'Level: ' . $current_user->level . "\n <br>";

return $output;

?>
</font>
}
add_shortcode( 'userlevel', 'custom_shortcode' );

知道我哪里出错了?

提前谢谢!

1 个答案:

答案 0 :(得分:0)

您正在使用需要PHP的HTML。这就是你有一个空白屏幕的原因。

以下是我将其转换为短代码的方法:

function wpse_shortcode_userlevel() {
    global $current_user;
    get_currentuserinfo();

    $output = '<span class="shortcode-user-level">';
    $output .= $current_user->display_name . "\n";
    $output .= "Level: {$current_user->level} \n <br>";
    $output .= '</span>';

    return $output;
}
add_shortcode( 'userlevel', 'wpse_shortcode_userlevel' );

然后在样式表中添加:

.shortcode-user-level {
    color: #ff0000;
}