Uso de memoria al consultar a los usuarios

2

Tengo un pequeño problema con una de mis consultas aquí. No puedo aumentar mi límite de memoria de wordpress mientras el hostgator lo configure en 64mb. No estoy seguro de si es posible reducir la cantidad de memoria utilizada para realizar algunos cambios en mi código, aquí está el código que estoy usando para consultar a los usuarios de un rol específico y mostrar su nombre, perfil y avatar:

<?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 } ?>
    
pregunta Vitor Argos 29.08.2011 - 22:43

2 respuestas

4

En su ejemplo, está recibiendo todos los campos en la llamada a get_users, pero solo está usando realmente los campos ID y display_name. Por lo tanto, puede ahorrar algo de memoria forzando a get_users a obtener solo los campos que necesita.

$users = get_users(array(
  'role'=>'s2member_level3', 
  'fields'=>array('ID', 'display_name'),
));

Eso ayudará a reducir la huella de tu memoria.

    
respondido por el Otto 30.08.2011 - 00:09
1

Llamar datos del autor

Puedes cambiar tus múltiples llamadas get_the_author_meta() contra una sola llamada $author_data = get_userdata( $user_id ); . Luego simplemente extraiga todo del objeto como $author_data->ID; . Esto debería ahorrarle algo de memoria.

Avatar

Si deja de lado el avatar, también guardará un montón de mem. Los avatares tardan mucho tiempo en cargarse y usan una carga completa de memoria.

    
respondido por el kaiser 29.08.2011 - 22:51

Lea otras preguntas en las etiquetas