get_bloginfo()
没有缓存,反复调用它会损害您的性能,就像您自己创建许多对数据库的调用一样。
这是一个简单的解决方案,通过定义一个包含所有所需信息的数组,并将其保存为wp\\u options表中的一个选项,它不演变任何缓存来最小化数据库和函数调用。
然后在标题中。php全球化一个变量并将该选项分配给它,每个变量都包含在它们中,您可以使用它,类似这样:
在您的功能中。php
function set_get_my_blog_info(){
$my_blog_info = get_option(\'my_blog_info\');
if ($my_blog_info === false){
global $wp_version
$lang = get_locale();
$lang = str_replace(\'_\', \'-\', $lang);
$my_blog_info = array(
\'url\' => home_url(),
\'wpurl\' => site_url(),
\'description\' => get_option(\'blogdescription\'),
\'rdf_url\' => get_feed_link(\'rdf\'),
\'rss_url\' => get_feed_link(\'rss\'),
\'rss2_url\' => get_feed_link(\'rss2\'),
\'atom_url\' => get_feed_link(\'atom\'),
\'comments_atom_url\' => get_feed_link(\'comments_atom\'),
\'comments_rss2_url\' => get_feed_link(\'comments_rss2\'),
\'pingback_url\' => get_option(\'siteurl\') .\'/xmlrpc.php\',
\'stylesheet_url\' => get_stylesheet_uri(),
\'stylesheet_directory\' => get_stylesheet_directory_uri(),
\'template_url\' => get_template_directory_uri(),
\'admin_email\' => get_option(\'admin_email\'),
\'html_type\' => get_option(\'html_type\'),
\'version\' => $wp_version,
\'language\' => $lang
);
update_option(\'my_blog_info\',$my_blog_info);
}
return $my_blog_info;
}
这将把大多数get\\u bloginfo选项保存到数据库中的一个选项中,并且只运行一次。
然后在标题中。php添加
global $my_blog_info;
$my_blog_info = set_get_my_blog_info();
然后,您可以在主题中的任何位置使用该数组,例如,而不是:
echo get_bloginfo(\'url\');
只需使用阵列:
echo $my_blog_options[\'url\'];