侧边栏中的IS_USER_LOGGED_IN函数不起作用

时间:2011-01-24 作者:Lynne

当用户登录并且我正在使用is\\u user\\u logged\\u函数时,我正在尝试更改侧栏。以下是代码-

<!-- BEGIN sidebar -->

<?php
/**
 * The Sidebar containing the primary and secondary widget areas.
 *
 * @package WordPress
 * @subpackage Twenty_Ten
 * @since Twenty Ten 1.0
 */
?>

        <div id="primary" class="widget-area" role="complementary">
            <ul class="xoxo">

<?php
    /* When we call the dynamic_sidebar() function, it\'ll spit out
     * the widgets for that widget area. If it instead returns false,
     * then the sidebar simply doesn\'t exist, so we\'ll hard-code in
     * some default sidebar stuff just in case.
     */
    if ( ! dynamic_sidebar( \'primary-widget-area\' ) ) : ?>


<li class="widget-container">
<h3 class="widget-title">Sign In / Register</h3>
<ul>    
<?php if ( is_user_logged_in() ) { echo \'Welcome, registered user!\';} else { echo \'Welcome, unregistered user!\';} ?>
</ul>
</li>


    <li id="meta" class="widget-container">
                <h3 class="widget-title"><?php _e( \'Meta\', \'twentyten\' ); ?></h3>
                <ul>
                    <?php wp_register(); ?>
                    <li><?php wp_loginout(); ?></li>
                    <?php wp_meta(); ?>
                </ul>
            </li>

        <?php endif; // end primary widget area ?>
            </ul>
        </div><!-- #primary .widget-area -->



<!-- END sidebar -->
当用户登录时,侧边栏会显示它应该做什么。当用户注销时,它将完全消失。我做错了什么?

1 个回复
SO网友:Bainternet

你把代码扭曲了

 if ( ! dynamic_sidebar( \'primary-widget-area\' ) ) : ?>
     // code here

 ?php endif;
witch意味着,如果侧栏上有任何小部件,if中的代码将无法工作。它基本上是使用if中的代码作为默认小部件,一旦你在侧栏上有了一个小部件,它就会忽略它。

因此,如果您的侧栏中确实有任何小部件,那么您需要在支持PHP的小部件中运行is\\u user\\u logged\\u函数。

希望这有帮助

结束

相关推荐

Paging in a sidebar mini loop

我切换到了另一个主题,并决定用其中的一些默认代码制作一个小部件,在自定义循环中显示我的美味帖子、推特帖子、su帖子和youtube视频(不包括主循环中的这些类别)。但是现在。。。分页不再工作。我制作了这个小部件:// =============================== EDL Sidebar Posts Widget ====================================== class SidebarPosts extends WP_Widget { &#x