View Single Post
Old 11-11-2012, 02:54 PM  
senortriangulo
Registered User
 
Industry Role:
Join Date: Oct 2012
Posts: 53
Quote:
Originally Posted by LucyVanAngel View Post
hi, one of my blogs is running too slow because of the amount of posts (over 5000)
the index.php file of wp has the following code:

#########
<?php if(have_posts()) { ?>
<?php while (have_posts()) : the_post(); ?>
#########

The have_posts() function is defined as follows:
############
./wp-includes/query.php: function have_posts() {
if ( $this->current_post + 1 < $this->post_count ) {
return true;
} elseif ( $this->current_post + 1 == $this->post_count && $this->post_count > 0 ) {
do_action_ref_array('loop_end', array(&$this));
// Do some cleaning up after the loop
$this->rewind_posts();
}

$this->in_the_loop = false;
return false;
}
#####################

Wordpress is returning EVERY single post (5000) in the database and then iterating over them performing a SQL query for each.
It does not help changing the theme because that routine is in wp itself not in the theme.

Anybody help ?

thanks
There's gotta be a way to configure this without messing with the PHP code right?

I don't really know much about Wordpress or what the_post() is doing, but if worst comes to worst, you could always add a function to query.php that sets current_post to a few hundred less than the number of posts.


function jump_post($index)
{
$this->current_post=$index;
}

Last edited by senortriangulo; 11-11-2012 at 02:55 PM..
senortriangulo is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook