Wordpress的自定义域
给wordpress安装了一些插件之后,在文章的编辑页经常能看到新增的"自定义域",比如说前一阵装上的tag插件,或者在另外一个系统上安装的postviews插件.
以postviews为例,这个插件能统计每篇blog的人气,它会给每篇blog新增字段:views,为了显示人气,需要在模板中插入代码:
PHP:
-
<?php
-
echo intval(post_custom('views'));
-
?>
这样有可能在一个loop里面多次调用post_custom函数,这时候对它的性能不免有些怀疑,担心post_custom函数会多次读取数据库,于是读了一下相关的代码:
PHP:
-
function get_post_custom( $post_id = 0 ) {
-
global $id, $post_meta_cache, $wpdb;
-
-
if ( ! $post_id )
-
$post_id = $id;
-
-
if ( isset($post_meta_cache[$post_id]) )
-
return $post_meta_cache[$post_id];
-
-
if ( $meta_list = $wpdb->get_results("SELECT post_id, meta_key, meta_value FROM $wpdb->postmeta WHERE post_id = '$post_id' ORDER BY post_id, meta_key", ARRAY_A) ) {
-
//读取数据库...........
-
}
-
}
可以看到,wordpress也已经考虑到这个问题,如果已经读取过自定义域,会以缓存的形式$post_meta_cache直接返回,不再折腾可怜的数据库了.
作者: Volcano 发表于September 26, 2006 at 7:42 am
xunii.com 开始的地方: Blog Archive : Wordpress的自定义域 于 2007-07-02 @ 20:43:47 留言 :
[...] 可以看到,wordpress也已经考虑到这个问题,如果已经读取过自定义域,会以缓存的形式$post_meta_cache直接返回,不再折腾可怜的数据库了. 转自:http://www.ooso.net/index.php/archives/251< [...]