随着互联网技术的飞速发展,越来越多的企业和个人选择了WordPress作为他们的网站搭建平台。WordPress以其易用性、强大功能和良好的扩展性受到了广泛的欢迎。对于一些WordPress新手来说,数据读取这一环节往往显得有些神秘和复杂。本文将带您深入了解WordPress数据读取,并提供一些高效实践方法。
一、WordPress 数据读取概述
WordPress数据读取主要包括以下几个方面:
1. 数据库读取:通过SQL语句从WordPress数据库中获取所需数据。
2. 缓存读取:从缓存中读取数据,以提高网站访问速度。
3. 主题函数读取:通过主题函数读取主题中的数据,如文章、评论、用户等。
二、数据库读取
WordPress数据库是存储网站内容的核心。以下是一些常用的数据库读取方法:
1. SQL查询
WordPress提供了 wpdb 类来执行SQL查询。以下是一个示例:
“`php
global $wpdb;
$result = $wpdb->get_results(“
wordpress 怎样减少数据库读取量
#1,若您的WordPress版本为2.3及以前,可采用如下方法令系统自动缓存内部调用函数,而完全不用担心缓存对系统交互性的影响(如延迟等)。
Step1:在WordPress安装目录下的wp-content文件夹下创建名为cache的目录,属性设置为755,如下图:
Step2:打开WordPress安装根目录下的wp-config.php文件,在其尾端加入define('ENABLE_CACHE', true);,如下图:
保存后上传更新文件,刷新页面后,可发现新创建的cache文件夹中生成了如下文件:
缓存的是一些不需要经常修改的文件,如分类名称、存档日期等。该缓存方法名为object缓存,并不缓存网页,而传统的wp-cache调用是缓存网页的,会影响网页的交互实时性,使用户体验些许变差。
#2,若您的WordPress版本为2.5及以上版本,由于新版WP取消了object缓存功能可以使用将所有待查数据都存入数据库options表(一般的默认名称为wp_options)的方法,大幅度减少数据库查询次数。ThinkAgain的解释如下:
默认WP有10个数据表,wp_posts和comments主要存储文章内容和评论,
其它的几个包括term等存储了目录和标签等等。这里不细谈。wp_options用来存储Wordpress以及插件运行时所涉及的配置等。且WP会在
运行时自动读取该表的内容。换句话说,因为WP已经预读这部分内容,所以直接调用wp_options内的数据是不会产生数据库查询的。()
方法:假如要缓存的是分类名称调用表单,则写functions.php如下代码:
function cache_category(){
$cached= get_option('multicolor_cache_category');
if($cached){
echo$cached;
}else{
$cached= cache_collapsible_list_cats();
echo”Update cache”;
echo$cached;
}
}
add_action('publish_post','cache_collapsible_list_cats');
当然,这显得很复杂,不过ThinkAgain说,WP2.6也是可以使用object自动缓存功能的,请等待他更新的方法。
#3,由于WordPress的内部永久链接调用函数为了追求老版插件的最大兼容性所以较啰嗦,比较耗费查询次数,可在functions.php写入如下代码,大幅度减少查询次数(均适用)
function revised_permalink($post,$leavename=false){
$rewritecode= array(
'%year%',
'%monthnum%',
'%day%',
'%hour%',
'%minute%',
'%second%',
$leavename?'':'%postname%',
'%post_id%',
'%category%',
'%author%',
$leavename?'':'%pagename%',
);
if( empty($post->ID)) return FALSE;
if($post->post_type=='page')
return get_page_link($post->ID,$leavename);
elseif($post->post_type=='attachment')
return get_attachment_link($post->ID);
$permalink= get_option('permalink_structure');
if(''!=$permalink&&!in_array($post->post_status, array('draft','pending'))){
$unixtime= strtotime($post->post_date);
$category='';
if( strpos($permalink,'%category%')!== false){
$cats= get_the_category($post->ID);
if($cats)
usort($cats,'_usort_terms_by_ID');// order by ID
$category=$cats[0]->slug;
if($parent=$cats[0]->parent)
$category= get_category_parents($parent, FALSE,'/', TRUE).$category;
// show default category in permalinks, without
// having to assign it explicitly
if( empty($category)){
$default_category= get_category( get_option('default_category'));
$category= is_wp_error($default_category)?'':$default_category->slug;
}
}
$author='';
if( strpos($permalink,'%author%')!== false){
$authordata= get_userdata($post->post_author);
$author=$authordata->user_nicename;
}
$date= explode(“”,date('Y m d H i s',$unixtime));
$rewritereplace=
array(
$date[0],
$date[1],
$date[2],
$date[3],
$date[4],
$date[5],
$post->post_name,
$post->ID,
$category,
$author,
$post->post_name,
);
$permalink= get_option('home'). str_replace($rewritecode,$rewritereplace,$permalink);
$permalink= user_trailingslashit($permalink,'single');
return apply_filters('post_link',$permalink,$post);
} else{// if they're not using the fancy permalink option
$permalink= get_option('home').'/?p='.$post->ID;
return apply_filters('post_link',$permalink,$post);
}
}
点击下面的链接下载修改好的文件,请解压后上传或粘贴到您原来的文件中。此方法文章页查询次数至少可降低10。
注意:如果您原来的插件有诸如下面的代码,并且您的永久链接方式为postname而不是postid,请修改
$sql=”SELECT ID, post_title, comment_count,post_date, post_content FROM$tableposts WHERE post_status='publish'”;
为
$sql=”SELECT ID, post_name, post_title,
comment_count,post_date, post_content FROM$tableposts WHERE
post_status='publish'”;
至此您的数据库查询次数将减小为个位数,繁忙时访问速度提高较显著,速度应当与直接生成静态文件时的情况差距不大,但互动性丝毫不减。
浅析如何优化wordpress的页面加载速度
首先我们要知道适用于其他类型网站的加速优化方法同样适用于wordpress博客;
再次要知道用户网页加载时间分为三部分:①网页执行时间②页面及页面元素加载时间③浏览器渲染网页时间,
针对这三部分时间,wordpress加速方法按加速的方式可以分为:
1、php代码层次加速
2、html代码层次加速
3、服务器层次加速
4、间接wordpress加速方法
一.php代码层次加速WordPress
所谓“php代码层次”是指php执行效率,执行查询数量层次上的优化。有以下几点:
※控制插件数量
※使用缓存插件
※数据库查询缓存
※静态页面缓存
※部分页面缓存
※优化主题
※启用Gzip压缩
对于对程序和代码不太熟悉的站长来说,最省事的方法就是使用WordPress插件,通过插件来对WordPress进行优化,加快WordPress加载速度。从网上浏览来看,小生在这里分享几个被高手们广泛推荐的wordpress插件。
1、Parallelize
插件的作用如其名,Parallelize的意思即并行。该插件将允许WordPress的附件文件自动并行化(图片或上传任何文件使用WordPress的媒体功能)在多个主机名,实现图片或者文件并行加载,加快页面加载速度。为了协助缓存,资源将永远载入相同的主机名。
2、WPFileCache
该插件“实现Object的分级持久化缓存,可以用来代替内置WordPress的WP_Object_Cache。”不像其他缓存插件,该插件不缓存你的整个页面,它只缓存在插件的API函数中指定的数据。换句话说,它会明显减少您的数据库的负载,从而加快页面加载和增加你的博客的整体性能。
3、QuickCache
QuickCache实时缓存博客的所有内容包括页面、文章、分类页面,以帮助快速读取数据,加快WordPress载入速度。你可以进入插件设置页面进行必要的设置,选择你认为需要缓存的部分来优化你的WordPress加载速度。默认情况下,对于登陆用户和最近留言用户是不会缓存。
4、W3TotalCache
这个插件在WordPress缓存插件中排行前三,可以缓存博客的所有内容,加快WordPress加载速度,优化服务器性能。开发者甚至保证经过W3TotalCache全面优化后性能至少可达到10倍的提高。相信可以为博客省不少带宽。
5、WPMinify
WPMinify,一个常见的WordPress插件,网上很多介绍和推荐它的文章。该插件的原理是在不改变功能的情况,删除源代码中不必要的字符以减少文件体积加快WordPress的加载速度。WPMinify将合并和压缩WordPress的JavaScript,CSS和HTML文件,这有助于大大降低WordPress加载时间。
6、WPSmush.it
是一款被广泛推荐的wordpress图片压缩插件。图片的加载是博客流量的重要部分,而未经过压缩优化的图片不但会大大消耗博客的流量还会影响WordPress的加载速度。值得注意的是,它的压缩是“无损压缩”,也就是说,经过它压缩的图片绝对不会失真,所以,压缩程度比Parallelize插件的压缩方法稍差。可以上传本地图片,也可以输入网页上图片的链接,同时支持多图片处理。最新版本的WPSmush.it更是可以完成整站图片无损压缩。 6 f9 R( g: W8 K- B
7、WPSuperCache
WPSuperCache是WordPress官方开发人员Donncha开发,是当前最高效也是最灵活的WordPress静态缓存插件。它把整个网页直接生成HTML文件,这样Apache就不用解析PHP脚本,通过使用这个插件,能使得WordPress博客显著的提速。对于的WPSuperCache设置,网上都有教程,可以按照方法安装和设置。
8、HyperCache
如果WordPress博客托管在一个低配置的虚拟主机上,该插件非常适合。HyperCache是就好像PC的优化工具,只是它优化的是博客。该插件相对于前面提到的W3TotalCache易于配置使用。它不仅可以缓存你的网站加快WordPress加载速度,它甚至还可以自动清理你的系统,以帮助减少磁盘的使用和节省存储空间。
9、CDNTools
CDN的全称是ContentDeliveryNetwork,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。而这个插件的目的是通过加载到一个内容分发网络(CDN)的数据,大大加快您的博客的加载时间。它可以让你载入Javascript和媒体文件到外部服务器页面,使加载速度大幅提升。
10、WP-Optimize
WP-Optimize是一个WordPress数据库优化插件,可以对删除文章历史记录、删除自动保存草稿、删除未审核和垃圾评论、优化MySQL数据库等,对WordPress的数据库进行必要的优化,可以优化数据库加快数据库查询速度和节省数据库空间。
安装并启用该插件,WP后台WP-Optimize管理面板有如下选项:
Remove all Post revisions(删除所有文章修订版本)
Remove all auto draft posts(删除所有自动保存的草稿文章)
Clean marked Spam comments(清除标记为垃圾邮件的评论)
Clean Unapproved comments(清理未经批准的评论)
Optimize database tables(优化数据库表)
选中需要进行的操作点击“PROCESS”按钮即可!
二.html代码层次加速WordPress
相比php代码层次加速WordPress,html层次上的优化更加重要一些。因为现在的服务器配置都不错,php执行效率也很高,除非你的WordPress插件多得太离谱,在速度上一般是不会有太多大的影响的(基本上1m以内可以执行完)。而html代码决定了WordPress加载的速度,浏览你博客的速度在很大程度上是这个因素决定的(在同样的网络环境下),用户加载网页的时间有80%花在这上面。要想你的WordPress飞速跑起来,html层次的优化是非常必要的。+ H! X+ M2 p5 x( V
Make Fewer HTTP Requests–减少HTTP请求的数量
Compress Components With Gzip–用Gzip压缩网页
Put CSS at Top& Put Js at Bottom–把CSS放在开头,把JS放在结尾
Avoid CSS Expressions–CSS中不要使用表达式
Make CSS and JS External–不要把CSS和js直接写入网页中,应加载外部
Reduce DNS Lookups–减少DNS查询的数量)
Minify Javascript and CSS–去除JS和CSS中的冗余
Avoid URL Redirecting–减少重定向
Used Cookie Free Domains–用不会传递Cookie的域名
三.服务器层次加速WordPress
部分站长有自己的独立服务器或者VPS,这一部分是针对VPS或者独立服务器的。
※使用轻量级、高性能的Nginx
※PHP字节码缓存组件apc
※为网页静态元素设置过期时间(以Nginx为例)
※增加Etags
※其它负载均衡方法
四.间接wordpress加速方法
即鼓励和提醒访问用户放弃IE,使用FireFox、Opera、Chrome等高性能浏览器,间接加速WordPres
希望对你有所帮助请采纳
如何配置优化环境,让wordpress访问提速
首先我们要知道适用于其他类型网站的加速优化方法同样适用于wordpress博客;
再次要知道用户网页加载时间分为三部分:①网页执行时间②页面及页面元素加载时间③浏览器渲染网页时间,
针对这三部分时间,wordpress加速方法按加速的方式可以分为:
1、php代码层次加速
2、html代码层次加速
3、服务器层次加速
4、间接wordpress加速方法
一.php代码层次加速WordPress
所谓“php代码层次”是指php执行效率,执行查询数量层次上的优化。有以下几点:
※控制插件数量
※使用缓存插件
※数据库查询缓存
※静态页面缓存
※部分页面缓存
※优化主题
※启用Gzip压缩
对于对程序和代码不太熟悉的站长来说,最省事的方法就是使用WordPress插件,通过插件来对WordPress进行优化,加快WordPress加载速度。从网上浏览来看,小生在这里分享几个被高手们广泛推荐的wordpress插件。
1、Parallelize
插件的作用如其名,Parallelize的意思即并行。该插件将允许WordPress的附件文件自动并行化(图片或上传任何文件使用WordPress的媒体功能)在多个主机名,实现图片或者文件并行加载,加快页面加载速度。为了协助缓存,资源将永远载入相同的主机名。
2、WPFileCache
该插件“实现Object的分级持久化缓存,可以用来代替内置WordPress的WP_Object_Cache。”不像其他缓存插件,该插件不缓存你的整个页面,它只缓存在插件的API函数中指定的数据。换句话说,它会明显减少您的数据库的负载,从而加快页面加载和增加你的博客的整体性能。
3、QuickCache
QuickCache实时缓存博客的所有内容包括页面、文章、分类页面,以帮助快速读取数据,加快WordPress载入速度。你可以进入插件设置页面进行必要的设置,选择你认为需要缓存的部分来优化你的WordPress加载速度。默认情况下,对于登陆用户和最近留言用户是不会缓存。
4、W3TotalCache
这个插件在WordPress缓存插件中排行前三,可以缓存博客的所有内容,加快WordPress加载速度,优化服务器性能。开发者甚至保证经过W3TotalCache全面优化后性能至少可达到10倍的提高。相信可以为博客省不少带宽。
5、WPMinify
WPMinify,一个常见的WordPress插件,网上很多介绍和推荐它的文章。该插件的原理是在不改变功能的情况,删除源代码中不必要的字符以减少文件体积加快WordPress的加载速度。WPMinify将合并和压缩WordPress的JavaScript,CSS和HTML文件,这有助于大大降低WordPress加载时间。
6、WPSmush.it
是一款被广泛推荐的wordpress图片压缩插件。图片的加载是博客流量的重要部分,而未经过压缩优化的图片不但会大大消耗博客的流量还会影响WordPress的加载速度。值得注意的是,它的压缩是“无损压缩”,也就是说,经过它压缩的图片绝对不会失真,所以,压缩程度比Parallelize插件的压缩方法稍差。可以上传本地图片,也可以输入网页上图片的链接,同时支持多图片处理。最新版本的WPSmush.it更是可以完成整站图片无损压缩。 6 f9 R( g: W8 K- B
7、WPSuperCache
WPSuperCache是WordPress官方开发人员Donncha开发,是当前最高效也是最灵活的WordPress静态缓存插件。它把整个网页直接生成HTML文件,这样Apache就不用解析PHP脚本,通过使用这个插件,能使得WordPress博客显著的提速。对于的WPSuperCache设置,网上都有教程,可以按照方法安装和设置。
8、HyperCache
如果WordPress博客托管在一个低配置的虚拟主机上,该插件非常适合。HyperCache是就好像PC的优化工具,只是它优化的是博客。该插件相对于前面提到的W3TotalCache易于配置使用。它不仅可以缓存你的网站加快WordPress加载速度,它甚至还可以自动清理你的系统,以帮助减少磁盘的使用和节省存储空间。
9、CDNTools
CDN的全称是ContentDeliveryNetwork,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。而这个插件的目的是通过加载到一个内容分发网络(CDN)的数据,大大加快您的博客的加载时间。它可以让你载入Javascript和媒体文件到外部服务器页面,使加载速度大幅提升。
10、WP-Optimize
WP-Optimize是一个WordPress数据库优化插件,可以对删除文章历史记录、删除自动保存草稿、删除未审核和垃圾评论、优化MySQL数据库等,对WordPress的数据库进行必要的优化,可以优化数据库加快数据库查询速度和节省数据库空间。
安装并启用该插件,WP后台WP-Optimize管理面板有如下选项:
Remove all Post revisions(删除所有文章修订版本)
Remove all auto draft posts(删除所有自动保存的草稿文章)
Clean marked Spam comments(清除标记为垃圾邮件的评论)
Clean Unapproved comments(清理未经批准的评论)
Optimize database tables(优化数据库表)
选中需要进行的操作点击“PROCESS”按钮即可!
二.html代码层次加速WordPress
相比php代码层次加速WordPress,html层次上的优化更加重要一些。因为现在的服务器配置都不错,php执行效率也很高,除非你的WordPress插件多得太离谱,在速度上一般是不会有太多大的影响的(基本上1m以内可以执行完)。而html代码决定了WordPress加载的速度,浏览你博客的速度在很大程度上是这个因素决定的(在同样的网络环境下),用户加载网页的时间有80%花在这上面。要想你的WordPress飞速跑起来,html层次的优化是非常必要的。+ H! X+ M2 p5 x( V
Make Fewer HTTP Requests–减少HTTP请求的数量
Compress Components With Gzip–用Gzip压缩网页
Put CSS at Top& Put Js at Bottom–把CSS放在开头,把JS放在结尾
Avoid CSS Expressions–CSS中不要使用表达式
Make CSS and JS External–不要把CSS和js直接写入网页中,应加载外部
Reduce DNS Lookups–减少DNS查询的数量)
Minify Javascript and CSS–去除JS和CSS中的冗余
Avoid URL Redirecting–减少重定向
Used Cookie Free Domains–用不会传递Cookie的域名
三.服务器层次加速WordPress
部分站长有自己的独立服务器或者VPS,这一部分是针对VPS或者独立服务器的。
※使用轻量级、高性能的Nginx
※PHP字节码缓存组件apc
※为网页静态元素设置过期时间(以Nginx为例)
※增加Etags
※其它负载均衡方法
四.间接wordpress加速方法
即鼓励和提醒访问用户放弃IE,使用FireFox、Opera、Chrome等高性能浏览器,间接加速WordPres








