Liberar memoria en loop de WordPress con muchas entradas

  • Autor Autor Okaro
  • Fecha de inicio Fecha de inicio
Okaro

Okaro

Épsilon
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Saludos!!

A ver, expongo mi caso, a ver si alguien me puede echar una mano.

Tengo un loop en WordPress que pasa a través de todos y cada uno de los posts. Este loop no muestra ni realiza nada (por ahora).

PHP:
$misEntradas = new WP_Query(array('post_type'=>'post', 'posts_per_page'=>-1));


if ( $misEntradas->have_posts() ) {


    while ( $misEntradas->have_posts() ) : $misEntradas->the_post(); 

          #Aquí iría el código a realizar, por ejemplo, añadir un campo personalizado a todas las entradas.

    endwhile;
    
    wp_reset_postdata();


}

El caso es que tengo muchas entradas (unas cuantas miles). E incluso sin poner nada de código en el loop, el servidor se queda sin memoria.

Sí, se que puedo aumentar la memoria, y así lo he hecho, pero es un proyecto de vídeos de afiliados, y cada día crece en unos pocos miles, así que si algún día quiero hacer un cambio o añadir algo, tarde o temprano me quedaría sin memoria.

He de suponer, ya que no estoy excesivamente puesto en PHP, que en cada pase del loop, este carga en memoria la entrada, aunque no se realice nada dentro del While, así que mi pregunta es: ¿Se puede hacer que vacíe de la memoria la entrada en cada pase del While? ¿O simplemente no se puede?

Cualquier ayuda será gratamente recibida.

Un Saludo y gracias.
 
[MENTION=49745]Okaro[/MENTION] tu loop esta llamando a todos los post por eso te está fundiendo la memoria

posts_per_page=-1
 
Sí, eso ya lo se, y de hecho así lo he comentado.

Tengo este loop por ejemplo cuando quiero añadir un campo personalizado a todas las entradas, o por ejemplo si quiero añadirles a todos una etiqueta, una categoría etc...

Vamos, para hacer cambios masivos.

Por eso pregunto si se puede hacer de alguna otra manera, o en su defecto vaciar de la memoria la entrada en cada pase del loop.

Un Saludo.
 
Atrás
Arriba