Performance optimizations.

git-svn-id: http://svn.automattic.com/wordpress/trunk@760 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
saxmatt 2004-01-12 11:52:35 +00:00
parent 41a4a14ded
commit 6f44a5461d
3 changed files with 47 additions and 37 deletions

View File

@ -1,7 +1,7 @@
<?php <?php
/* Don't remove these lines. */ /* Don't remove these lines. */
$blog = 1; $blog = 1;
require_once('wp-blog-header.php'); require('wp-blog-header.php');
// Uncomment the next line if you want to track blog updates from weblogs.com // Uncomment the next line if you want to track blog updates from weblogs.com
//include_once(ABSPATH.WPINC.'/links-update-xml.php'); //include_once(ABSPATH.WPINC.'/links-update-xml.php');
?> ?>

View File

@ -8,7 +8,7 @@ $curpath = dirname(__FILE__).'/';
if (!file_exists($curpath . '/wp-config.php')) if (!file_exists($curpath . '/wp-config.php'))
die("There doesn't seem to be a <code>wp-config.php</code> file. I need this before we can get started. Need more help? <a href='http://wordpress.org/docs/faq/#wp-config'>We got it</a>. You can <a href='wp-admin/install-config.php'>create a <code>wp-config.php</code> file through a web interface</a>, but this doesn't work for all server setups. The safest way is to manually create the file."); die("There doesn't seem to be a <code>wp-config.php</code> file. I need this before we can get started. Need more help? <a href='http://wordpress.org/docs/faq/#wp-config'>We got it</a>. You can <a href='wp-admin/install-config.php'>create a <code>wp-config.php</code> file through a web interface</a>, but this doesn't work for all server setups. The safest way is to manually create the file.");
require_once ($curpath.'/wp-config.php'); require($curpath.'/wp-config.php');
$wpvarstoreset = array('m','p','posts','w','c', 'cat','withcomments','s','search','exact', 'sentence','poststart','postend','preview','debug', 'calendar','page','paged','more','tb', 'pb','author','order','orderby', 'year', 'monthnum', 'day', 'name', 'category_name'); $wpvarstoreset = array('m','p','posts','w','c', 'cat','withcomments','s','search','exact', 'sentence','poststart','postend','preview','debug', 'calendar','page','paged','more','tb', 'pb','author','order','orderby', 'year', 'monthnum', 'day', 'name', 'category_name');
@ -339,7 +339,15 @@ if ($posts) {
} }
// Do the same for comment numbers // Do the same for comment numbers
$comment_counts = $wpdb->get_results("SELECT ID, COUNT( comment_ID ) AS ccount
FROM $tableposts
LEFT JOIN $tablecomments ON ( comment_post_ID = ID AND comment_approved = '1')
WHERE post_status = 'publish' AND ID IN ($post_id_list)
GROUP BY ID");
foreach ($comment_counts as $comment_count) {
$comment_count_cache["$comment_count->ID"] = $comment_count->ccount;
}
if (1 == count($posts)) { if (1 == count($posts)) {
if ($p || $name) { if ($p || $name) {

View File

@ -862,12 +862,10 @@ function the_ID() {
echo $id; echo $id;
} }
function the_title($before='', $after='', $echo=true) { function the_title($before = '', $after = '', $echo = true) {
$title = get_the_title(); $title = get_the_title();
$title = convert_bbcode($title);
$title = convert_gmcode($title);
$title = convert_smilies($title); $title = convert_smilies($title);
if ($title) { if (!empty($title)) {
$title = convert_chars($before.$title.$after); $title = convert_chars($before.$title.$after);
$title = apply_filters('the_title', $title); $title = apply_filters('the_title', $title);
if ($echo) if ($echo)
@ -878,8 +876,6 @@ function the_title($before='', $after='', $echo=true) {
} }
function the_title_rss() { function the_title_rss() {
$title = get_the_title(); $title = get_the_title();
$title = convert_bbcode($title);
$title = convert_gmcode($title);
$title = strip_tags($title); $title = strip_tags($title);
if (trim($title)) { if (trim($title)) {
echo convert_chars($title, 'unicode'); echo convert_chars($title, 'unicode');
@ -896,7 +892,7 @@ function the_title_unicode($before='',$after='') {
} }
} }
function get_the_title() { function get_the_title() {
global $id, $post; global $post;
$output = stripslashes($post->post_title); $output = stripslashes($post->post_title);
if (!empty($post->post_password)) { // if there's a password if (!empty($post->post_password)) { // if there's a password
$output = 'Protected: ' . $output; $output = 'Protected: ' . $output;
@ -1446,7 +1442,7 @@ function category_description($category = 0) {
return $category_description; return $category_description;
} }
// out of the b2 loop // out of the WordPress loop
function dropdown_cats($optionall = 1, $all = 'All', $sort_column = 'ID', $sort_order = 'asc', function dropdown_cats($optionall = 1, $all = 'All', $sort_column = 'ID', $sort_order = 'asc',
$optiondates = 0, $optioncount = 0, $hide_empty = 1) { $optiondates = 0, $optioncount = 0, $hide_empty = 1) {
global $cat, $tablecategories, $tableposts, $wpdb; global $cat, $tablecategories, $tableposts, $wpdb;
@ -1488,32 +1484,41 @@ function dropdown_cats($optionall = 1, $all = 'All', $sort_column = 'ID', $sort_
echo "</select>\n"; echo "</select>\n";
} }
// out of the b2 loop // out of the WordPress loop
function list_cats($optionall = 1, $all = 'All', $sort_column = 'ID', $sort_order = 'asc', function list_cats($optionall = 1, $all = 'All', $sort_column = 'ID', $sort_order = 'asc', $file = '', $list = true, $optiondates = 0, $optioncount = 0, $hide_empty = 1) {
$file = 'blah', $list = true, $optiondates = 0, $optioncount = 0, $hide_empty = 1) {
global $tablecategories, $tableposts, $tablepost2cat, $wpdb; global $tablecategories, $tableposts, $tablepost2cat, $wpdb;
global $pagenow, $siteurl, $blogfilename; global $pagenow, $siteurl, $blogfilename;
global $querystring_start, $querystring_equal, $querystring_separator; global $querystring_start, $querystring_equal, $querystring_separator;
if (($file == 'blah') || ($file == '')) { // Optiondates does not currently work
if ('' == $file) {
$file = "$siteurl/$blogfilename"; $file = "$siteurl/$blogfilename";
} }
$sort_column = 'cat_'.$sort_column; $sort_column = 'cat_'.$sort_column;
$query = " $query = "
SELECT cat_ID, cat_name, category_nicename, SELECT cat_ID, cat_name, category_nicename
COUNT($tablepost2cat.post_id) AS cat_count, FROM $tablecategories
DAYOFMONTH(MAX(post_date)) AS lastday, MONTH(MAX(post_date)) AS lastmonth
FROM $tablecategories LEFT JOIN $tablepost2cat ON (cat_ID = category_id)
LEFT JOIN $tableposts ON (ID = post_id)
WHERE cat_ID > 0 WHERE cat_ID > 0
GROUP BY category_id
"; ";
if (intval($hide_empty) == 1) { $query .= " ORDER BY $sort_column $sort_order";
$query .= " HAVING cat_count > 0";
}
$query .= " ORDER BY $sort_column $sort_order, post_date DESC";
$categories = $wpdb->get_results($query); $categories = $wpdb->get_results($query);
if (intval($hide_empty) == 1) {
$cat_counts = $wpdb->get_results(" SELECT cat_ID,
COUNT(wp_post2cat.post_id) AS cat_count
FROM wp_categories LEFT JOIN wp_post2cat ON (cat_ID = category_id)
LEFT JOIN wp_posts ON (ID = post_id)
GROUP BY category_id");
foreach ($cat_counts as $cat_count) {
$category_posts["$cat_count->cat_ID"] = $cat_count->cat_count;
}
}
if (intval($optioncount) == 1) {
$link .= '&nbsp;('.$category->cat_count.')';
}
if (!$categories) { if (!$categories) {
if ($list) { if ($list) {
$before = '<li>'; $before = '<li>';
@ -1522,22 +1527,15 @@ function list_cats($optionall = 1, $all = 'All', $sort_column = 'ID', $sort_orde
echo $before . "No categories" . $after . "\n"; echo $before . "No categories" . $after . "\n";
return; return;
} }
if (intval($optionall) == 1) {
$all = apply_filters('list_cats', $all);
$link = "<a href=\"".$file.$querystring_start.'cat'.$querystring_equal.'all">'.$all."</a>";
if ($list) echo "\n\t<li>$link</li>";
else echo "\t$link<br />\n";
}
foreach ($categories as $category) { foreach ($categories as $category) {
$cat_name = apply_filters('list_cats', $category->cat_name);
$link = '<a href="'.get_category_link(0, $category->cat_ID, $category->category_nicename).'" title="View all posts filed under ' . $category->cat_name . '">'; $link = '<a href="'.get_category_link(0, $category->cat_ID, $category->category_nicename).'" title="View all posts filed under ' . $category->cat_name . '">';
$link .= stripslashes($cat_name).'</a>'; $link .= stripslashes($category->cat_name).'</a>';
if (intval($optioncount) == 1) { if (intval($optioncount) == 1) {
$link .= '&nbsp;('.$category->cat_count.')'; $link .= ' ('.$category_posts["$category->cat_ID"].')';
} }
if (intval($optiondates) == 1) { if (intval($optiondates) == 1) {
$link .= '&nbsp;'.$category->lastday.'/'.$category->lastmonth; $link .= ' '.$category->lastday.'/'.$category->lastmonth;
} }
if ($list) { if ($list) {
echo "\t<li>$link</li>\n"; echo "\t<li>$link</li>\n";
@ -1580,7 +1578,6 @@ function comments_number($zero='No Comments', $one='1 Comment', $more='% Comment
function comments_link($file='', $echo=true) { function comments_link($file='', $echo=true) {
global $id, $pagenow; global $id, $pagenow;
global $querystring_start, $querystring_equal, $querystring_separator;
if ($file == '') $file = $pagenow; if ($file == '') $file = $pagenow;
if ($file == '/') $file = ''; if ($file == '/') $file = '';
if (!$echo) return get_permalink() . '#comments'; if (!$echo) return get_permalink() . '#comments';
@ -1598,7 +1595,12 @@ function comments_popup_script($width=400, $height=400, $file='wp-comments-popup
function comments_popup_link($zero='No Comments', $one='1 Comment', $more='% Comments', $CSSclass='', $none='Comments Off') { function comments_popup_link($zero='No Comments', $one='1 Comment', $more='% Comments', $CSSclass='', $none='Comments Off') {
global $id, $wpcommentspopupfile, $wpcommentsjavascript, $post, $wpdb, $tablecomments, $HTTP_COOKIE_VARS, $cookiehash; global $id, $wpcommentspopupfile, $wpcommentsjavascript, $post, $wpdb, $tablecomments, $HTTP_COOKIE_VARS, $cookiehash;
global $querystring_start, $querystring_equal, $querystring_separator, $siteurl; global $querystring_start, $querystring_equal, $querystring_separator, $siteurl;
$number = $wpdb->get_var("SELECT COUNT(comment_ID) FROM $tablecomments WHERE comment_post_ID = $id AND comment_approved = '1';"); global $comment_count_cache;
if ('' == $comment_count_cache["$id"]) {
$number = $wpdb->get_var("SELECT COUNT(comment_ID) FROM $tablecomments WHERE comment_post_ID = $id AND comment_approved = '1';");
} else {
$number = $comment_count_cache["$id"];
}
if (0 == $number && 'closed' == $post->comment_status && 'closed' == $post->ping_status) { if (0 == $number && 'closed' == $post->comment_status && 'closed' == $post->ping_status) {
echo $none; echo $none;
return; return;