Liberar memória em loop de WordPress com muitas entradas

  • Autor Autor Okaro
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
Okaro

Okaro

Épsilon
Usuário com poucas negociações! Use sempre o saldo do 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.
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
[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.
 
Voltar
Topo