Quote:
Originally Posted by LucyVanAngel
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;
}