仅在页面顶部显示的短码输出

时间:2015-06-10 作者:Chez Ballou

我已经找到了一些解决方案,但我正在回显一些html,我无法使用这些解决方案(例如,返回回显的intead)。这是我的职责:

function get_loggedin_avatar (){global $current_user;
    if ( is_user_logged_in() ):
        get_currentuserinfo();  
        echo \'<a href="/myaccount">\';
        echo get_avatar( $current_user->ID, 96, left );
        echo \'</a>\';
    endif;  }
add_shortcode( \'loggedinavatar\', \'get_loggedin_avatar\' );
我看到如果我将所有的回音都改为返回,那么化身将输出到正确的位置,但链接html保持在页面的顶部。

我认为也许将html转换成可以返回的变量可能会有用,但我无法做到这一点。输出缓冲(或至少我的尝试)也不起作用。

**这不是this 因为输出缓冲不适用于我的特定示例。

1 个回复
SO网友:Krzysiek Dróżdż

短代码回调应该返回它的输出,而不是回显它。

像这样的方法应该可以很好地工作:

function get_loggedin_avatar (){
    global $current_user;
    $result = \'\';

    if ( is_user_logged_in() ) {
        get_currentuserinfo();  
        $result = \'<a href="/myaccount">\'.
            get_avatar( $current_user->ID, 96, left ).
            \'</a>\';
    }
    return $result;
}
add_shortcode( \'loggedinavatar\', \'get_loggedin_avatar\' );

结束

相关推荐

Apply_Filters(‘the_content’,$Content)与DO_ShortCode($Content)

假设我有一个主题选项或自定义的postmeta文本区域。现在我想执行多个短代码、一般文本、图像等。最佳实践是什么?为什么?选项1:$content = //my text area data; echo apply_filters(\'the_content\', $content); 选项2:$content = //my text area data; echo do_shortcode($content); 请告诉我哪一个是最佳实践,以及为什么。EDIT让我详细描