仅为登录用户显示用户描述

时间:2014-06-19 作者:drake035

在我的“关于”页面中,我列出了该网站的所有WP用户。然后是作者。php I使用以下代码显示所选用户的描述:<?php the_author_meta( \'description\' );?>.

问题:如果此用户已登录,则此代码仅显示用户描述,否则不显示任何内容。为什么?

“关于”页面的代码:

<ul>
    <?php
    $blogusers = get_users(\'orderby=nicename&who=authors\');
    foreach ($blogusers as $user) {
        $user_info = get_userdata( $user->ID );
        ?>
        <li>
            <a href="<?php echo get_author_posts_url($user_info->ID); ?>">
                <?php echo $user_info->nickname; ?>
            </a>
        </li>
        <?php
    }
    ?>
</ul>

3 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

我已经在我这边测试了你的代码,它运行得很好。无论我是否登录,都会显示相关信息。

这肯定不是代码的问题,而是外部问题。您需要查找任何类型的代码,这些代码可能会限制该代码在用户注销时显示,例如if ( is_user_logged_in() ). 如果您有任何类型的管理员/角色类型插件,也可以看看这些插件。他们可能会限制用户在注销时查看某些页面或信息

我建议如下,给自己找一个像Notepad++ 并在wordpress安装中搜索以下语句if ( is_user_logged_in() ). 此外,还可以查看您的用户角色,以及如果您自定义了您的角色,他们可以查看什么,不能查看什么。您还应该尝试逐个停用插件,并检查问题是否消失。最后,试一下bundled themes.

这至少可以让你对如何解决你的问题有一些想法

SO网友:shahpranaf

您正在使用“the_author_meta( \'description\' )“内部循环还是外部循环?如果您在外部循环中使用它,请将用户id传递给id。

<ul>
        <?php
        $blogusers = get_users(\'orderby=nicename&who=authors\');
        foreach ($blogusers as $user) {
            $user_info = get_userdata( $user->ID );
            ?>
            <li>
                <a href="<?php echo get_author_posts_url($user_info->ID); ?>">
                    <?php echo $user_info->nickname; ?>
                    <?php the_author_meta( \'description\', $user->ID  );?>
                </a>
            </li>
            <?php
        }
        ?>
    </ul>

SO网友:Rup

在黑暗中拍摄,因为这不属于我的专业领域-

所有默认主题的作者页面顶部都有这样一个块:

<?php
    /*
     * Queue the first post, that way we know who
     * the author is when we try to get their name,
     * URL, description, avatar, etc.
     *
     * We reset this later so we can run the loop
     * properly with a call to rewind_posts().
     */
    if ( have_posts() )
        the_post();
?>
设置$authordata 全球声明:get_the_author_meta() 依赖于未指定用户ID参数的时间。(如果作者没有发表任何东西,它也可能不起作用。)

上列出的替代方式Author Templates codex page 是根据查询参数自己获取作者

<?php 
    $curauth = (isset($_GET[\'author_name\'])) ? get_user_by(\'slug\', $author_name)
                                             : get_userdata(intval($author));
?>
并从中读取属性。另一种方式对我来说似乎更好,特别是因为wp includes/query应该为我们进行这种查找(?),但这可能更普遍。

结束

相关推荐

按上次登录日期排序Get_Users()。有可能吗?

我想创建一个页面,显示按上次登录日期排序的所有博客用户。我尝试了get\\u users()函数,我可以成功地获取用户列表,但不是按照我想要的顺序:$query = get_users(\'&offset=\'.$offset.\'&orderby=login&order=DESC&number=\'.$number); 我认为orderby=登录不是我想要的。。。有没有其他方法可以做到这一点?