worpress blog 的一个问题。function get_option($setting) 这个函数的问题
在 functions.php 里面function get_option($setting)这个函数:function get_option($setting) {
global $wpdb;//就是 wp_cache_get 这个函数怎么来的呢。
$value = wp_cache_get($setting, 'options');
if ( false === $value ) {
if ( defined('WP_INSTALLING') )
$wpdb->hide_errors();
$row = $wpdb->get_row("SELECT option_value FROM $wpdb->options WHERE option_name = '$setting' LIMIT 1");
if ( defined('WP_INSTALLING') )
$wpdb->show_errors();if( is_object( $row) ) { // Has to be get_row instead of get_var because of funkiness with 0, false, null values
$value = $row->option_value;
wp_cache_set($setting, $value, 'options');
} else {
return false;
}
}// If home is not set use siteurl.
if ( 'home' == $setting && '' == $value )
return get_option('siteurl');if ( 'siteurl' == $setting || 'home' == $setting || 'category_base' == $setting )
$value = preg_replace('|/+$|', '', $value);return apply_filters( 'option_' . $setting, maybe_unserialize($value) );
}
wp_cache_get 这个函数怎么来的呢。不在 wp-blog-header.php 这个文件的所有reqiue_once过的文件里,也不在functions。php 的文件里这个get_option() 是function gzip_compression() {
if ( !get_option('gzipcompression') ) return false;if ( extension_loaded('zlib') ) {
ob_start('ob_gzhandler');
}
}
里面调用的那么到底这个 wp_cache_get 怎么来的呢后来我想了一下:d:\wp\wp2.1\wp-includes>type * |find "wp_cac
he_get"author-template.phpbook-template.phpbook.phpcache.php
        if ( $cache = wp_cache_get( 'get_books', 'book' ) )
function wp_cache_get($id, $flag = '') {capabilities.phpcategory-template.phpcategory.php
        if ( ! $cat_ids = wp_cache_get('all_category_ids', 'category') ) {
        if ( $cache = wp_cache_get( 'get_categories', 'category' ) )class-IXR.php
                if ( ! $_category = wp_cache_get($category, 'category') ) {class-pop3.phpclass-snoopy.php
终于找到了是在win下工作的假如我在 linux下的话,小弟可能想不到这个利用 type 命令这个方法了
不过也很奇怪既然这个 wp_cache_get() 是在 cache。php下定义的那为什么不需要  reqiure  cache。php 一下呢又是一个问题。那现在就是想问:除了 include() include_once() require() require_once() 之外的文件调用外  还可以有其他调用方法吗?
 

解决方案 »

  1.   

    朋友有看过我的提问的过程吗?就是在 文件里面 没有调用的函数却用上了
    我就假设还有其他的调用方法。例如dll的调用不过这里明显也不是。
      

  2.   

    终于找到了是在win下工作的假如我在 linux下的话,小弟可能想不到这个利用 type 命令这个方法了
    不过也很奇怪既然这个 wp_cache_get() 是在 cache。php下定义的那为什么不需要 reqiure cache。php 一下呢又是一个问题。那现在就是想问:除了 include() include_once() require() require_once() 之外的文件调用外 还可以有其他调用方法吗?
      

  3.   

    你 find 一下 cache。php  看看哪些 文件调用了他,说不定有个页面调用了这个文件,又被你看到的页面调用了,只是猜得。
      

  4.   

    ================================================================function wp_cache_get 是在cache。php下定义的。首先是 追踪 哪个文件调用了 :老方法: type * |find "cache.php" (批处理):cache。php ....找找到了: wp-settings.php 调用了 cache.php。提示:由 type 得出的数据的不是很准确要自己再次打开文件验证。
    文件的调用关系:================================================================cache.php---wp-settings.php(wp-settings.php 调用了cache.php 以下同样。)wp-settings.php---wp-config.phpwp-config.php---wp-blog-header.phpfunction.php---wp-blog-header.php================================================================gzip_compression()---get_option()---wp-cache-get()gzip_compression() 在wp-blog-header.php被调用,在function。php中定义。get_option() 在function。php中定义。wp-cache-get() 在cache.php 中定义。========================================================================----------以上结论由 Samual2004 得出。
      

  5.   

    file函数+eval???什么意思呢朋友?用那个的file函数?eval 执行什么????
      

  6.   

    ================================================================gzip_compression()---get_option()---wp-cache-get()gzip_compression() 在wp-blog-header.php被调用,在function。php中定义。get_option() 被gzip_compression()调用  在function。php 中定义。wp-cache-get() 被get_option() 调用 在cache.php 中定义。========================================================================----------以上结论由 Samual2004 得出。