查询用户时的内存使用情况

时间:2011-08-29 作者:Vitor Argos

我这里有一个小问题。只要hostgator将我的wordpress内存限制设置为64mb,我就无法增加它。我不确定对我的代码进行一些更改是否可以减少使用的内存量,下面是我用来查询特定角色的用户并显示其姓名、个人资料和头像的代码:

<?php $users = get_users(\'role=s2member_level3\'); ?> 
<?php foreach ($users as $user) {
    $avatar = get_avatar($user->ID, \'96\');
    if (get_the_author_meta(\'description\', $user->ID) == "" && stristr($avatar,"gravatar.com/avatar")) { continue; }
    ?>
    <div class="colaborador">
        <div class="imagem-colaborador">
            <?php if ($avatar == "") { 
                echo \'<img src="http://1.gravatar.com/avatar/ad516503a11cd5ca435acc9bb6523536?s=96" alt="Avatar" />\'; 
            } else { 
                echo $avatar;
            } ?> 
        </div>

        <div class="texto-colaborador">
            <h2 class="nome-colaborador"><?php echo $user->display_name; ?></h2>
            <p><?php the_author_meta(\'description\', $user->ID);  ?></p>
        </div>                          
    </div>
<?php } ?>

2 个回复
最合适的回答,由SO网友:Otto 整理而成

在您的示例中,您将获得get\\u users调用中的所有字段,但实际上只使用ID和display\\u name字段。因此,您可以通过强制get\\u用户只获取所需的字段来节省一些内存。

$users = get_users(array(
  \'role\'=>\'s2member_level3\', 
  \'fields\'=>array(\'ID\', \'display_name\'),
));
这将有助于减少内存占用。

SO网友:kaiser

调用作者数据您可以更改您的get_the_author_meta() 针对单个$author_data = get_userdata( $user_id ); 呼叫然后简单地从对象中提取所有内容,如$author_data->ID;. 这会为您节省一些内存。

阿凡达

如果你去掉了阿凡达,你也会节省很多内存。头像需要很长时间才能加载和使用全部内存。

结束

相关推荐

High CPU & Memory Spikes?

我随机得到CPU和内存的高峰值。我已经停用了几乎所有试图找到罪魁祸首的插件。我一直在一次打开几个,然后等待30分钟,看看服务器是否表示可以。它总是这样。今晚我有3个小时没碰它,当我回来时,我意识到我的副总裁在晚上8点和9点左右随机出现峰值。但从下午6点到8点没有问题,从晚上9点到凌晨12点30分没有问题。它说我的问题是索引。php。这是26日随机开始的。没有新插件,没有脚本更改,根本没有区别。我如何找出问题所在?More Info:我在VPS上安装了两个wordpress。其中一个是我的主网站,我和大约3