get_bloginfo()
云策文档标注
概述
get_bloginfo() 是 WordPress 核心函数,用于检索当前站点的各种信息,如站点标题、URL、版本等。它接受 $show 参数指定信息类型,并支持 $filter 参数进行过滤处理。
关键要点
- 函数返回字符串类型信息,默认返回站点名称(blogname)。
- $show 参数支持多种值,包括 'name'(站点标题)、'url'(站点地址)、'version'(WordPress 版本)等,具体值对应不同设置项。
- 部分 $show 值已弃用,如 'siteurl' 和 'home',应使用 'url' 替代,弃用时会触发 _deprecated_argument()。
- $filter 参数默认为 'raw',可设置为 'display' 以应用 bloginfo 或 bloginfo_url 过滤器。
- 函数内部使用 switch 语句处理不同 $show 值,调用如 get_option()、home_url() 等辅助函数获取数据。
代码示例
$bloginfo = get_bloginfo( $show, $filter );注意事项
- 对于文本方向,建议使用 is_rtl() 函数而非 'text_direction' 参数,后者已弃用。
- URL 相关值可能受 is_ssl() 和过滤器影响,不一定完全匹配后台设置。
- 主题和插件可通过 'pre_option_html_type' 过滤器覆盖 'html_type' 的默认值。
原文内容
Retrieves information about the current site.
Description
Possible values for $show include:
- ‘name’ – Site title (set in Settings > General)
- ‘description’ – Site tagline (set in Settings > General)
- ‘wpurl’ – The WordPress address (URL) (set in Settings > General)
- ‘url’ – The Site address (URL) (set in Settings > General)
- ‘admin_email’ – Admin email (set in Settings > General)
- ‘charset’ – The “Encoding for pages and feeds” (set in Settings > Reading)
- ‘version’ – The current WordPress version
- ‘html_type’ – The Content-Type (default: “text/html”). Themes and plugins can override the default value using the ‘pre_option_html_type’ filter
- ‘text_direction’ – The text direction determined by the site’s language. is_rtl() should be used instead
- ‘language’ – Language code for the current site
- ‘stylesheet_url’ – URL to the stylesheet for the active theme. An active child theme will take precedence over this value
- ‘stylesheet_directory’ – Directory path for the active theme. An active child theme will take precedence over this value
- ‘template_url’ / ‘template_directory’ – URL of the active theme’s directory. An active child theme will NOT take precedence over this value
- ‘pingback_url’ – The pingback XML-RPC file URL (xmlrpc.php)
- ‘atom_url’ – The Atom feed URL (/feed/atom)
- ‘rdf_url’ – The RDF/RSS 1.0 feed URL (/feed/rdf)
- ‘rss_url’ – The RSS 0.92 feed URL (/feed/rss)
- ‘rss2_url’ – The RSS 2.0 feed URL (/feed)
- ‘comments_atom_url’ – The comments Atom feed URL (/comments/feed)
- ‘comments_rss2_url’ – The comments RSS 2.0 feed URL (/comments/feed)
Some $show values are deprecated and will be removed in future versions.
These options will trigger the _deprecated_argument() function.
Deprecated arguments include:
- ‘siteurl’ – Use ‘url’ instead
- ‘home’ – Use ‘url’ instead
Parameters
$showstringoptional-
Site info to retrieve. Default empty (site name).
$filterstringoptional-
How to filter what is retrieved. Default
'raw'.
Source
function get_bloginfo( $show = '', $filter = 'raw' ) {
switch ( $show ) {
case 'home': // Deprecated.
case 'siteurl': // Deprecated.
_deprecated_argument(
__FUNCTION__,
'2.2.0',
sprintf(
/* translators: 1: 'siteurl'/'home' argument, 2: bloginfo() function name, 3: 'url' argument. */
__( 'The %1$s option is deprecated for the family of %2$s functions. Use the %3$s option instead.' ),
'<code>' . $show . '</code>',
'<code>bloginfo()</code>',
'<code>url</code>'
)
);
// Intentional fall-through to be handled by the 'url' case.
case 'url':
$output = home_url();
break;
case 'wpurl':
$output = site_url();
break;
case 'description':
$output = get_option( 'blogdescription' );
break;
case 'rdf_url':
$output = get_feed_link( 'rdf' );
break;
case 'rss_url':
$output = get_feed_link( 'rss' );
break;
case 'rss2_url':
$output = get_feed_link( 'rss2' );
break;
case 'atom_url':
$output = get_feed_link( 'atom' );
break;
case 'comments_atom_url':
$output = get_feed_link( 'comments_atom' );
break;
case 'comments_rss2_url':
$output = get_feed_link( 'comments_rss2' );
break;
case 'pingback_url':
$output = site_url( 'xmlrpc.php' );
break;
case 'stylesheet_url':
$output = get_stylesheet_uri();
break;
case 'stylesheet_directory':
$output = get_stylesheet_directory_uri();
break;
case 'template_directory':
case 'template_url':
$output = get_template_directory_uri();
break;
case 'admin_email':
$output = get_option( 'admin_email' );
break;
case 'charset':
$output = get_option( 'blog_charset' );
if ( '' === $output ) {
$output = 'UTF-8';
}
break;
case 'html_type':
$output = get_option( 'html_type' );
break;
case 'version':
global $wp_version;
$output = $wp_version;
break;
case 'language':
/*
* translators: Translate this to the correct language tag for your locale,
* see https://www.w3.org/International/articles/language-tags/ for reference.
* Do not translate into your own language.
*/
$output = __( 'html_lang_attribute' );
if ( 'html_lang_attribute' === $output || preg_match( '/[^a-zA-Z0-9-]/', $output ) ) {
$output = determine_locale();
$output = str_replace( '_', '-', $output );
}
break;
case 'text_direction':
_deprecated_argument(
__FUNCTION__,
'2.2.0',
sprintf(
/* translators: 1: 'text_direction' argument, 2: bloginfo() function name, 3: is_rtl() function name. */
__( 'The %1$s option is deprecated for the family of %2$s functions. Use the %3$s function instead.' ),
'<code>' . $show . '</code>',
'<code>bloginfo()</code>',
'<code>is_rtl()</code>'
)
);
if ( function_exists( 'is_rtl' ) ) {
$output = is_rtl() ? 'rtl' : 'ltr';
} else {
$output = 'ltr';
}
break;
case 'name':
default:
$output = get_option( 'blogname' );
break;
}
if ( 'display' === $filter ) {
if (
str_contains( $show, 'url' )
|| str_contains( $show, 'directory' )
|| str_contains( $show, 'home' )
) {
/**
* Filters the URL returned by get_bloginfo().
*
* @since 2.0.5
*
* @param string $output The URL returned by bloginfo().
* @param string $show Type of information requested.
*/
$output = apply_filters( 'bloginfo_url', $output, $show );
} else {
/**
* Filters the site information returned by get_bloginfo().
*
* @since 0.71
*
* @param mixed $output The requested non-URL site information.
* @param string $show Type of information requested.
*/
$output = apply_filters( 'bloginfo', $output, $show );
}
}
return $output;
}
Hooks
- apply_filters( ‘bloginfo’, mixed $output, string $show )
-
Filters the site information returned by get_bloginfo() .
- apply_filters( ‘bloginfo_url’, string $output, string $show )
-
Filters the URL returned by get_bloginfo() .
Changelog
| Version | Description |
|---|---|
| 0.71 | Introduced. |
Skip to note 7 content
Codex
Network Tagline
Using this example, you can obtain the name and description for the network home:
results in this being displayed on your blog:
The Network Home URL is: http://example.com/
The Network Home Name is: Example
The Network Home Tagline is: The example site
Skip to note 8 content
Rehmat Alam
There should be a possibility to return the array of all available info. Although this might not be a good practice in terms of performance this should help someone who needs to fetch all info about a website. Note that I’ve omitted some fields that might not be that important:
function bloginfo_array() { $fields = array('name', 'description', 'wpurl', 'url', 'admin_email', 'charset', 'version', 'html_type', 'text_direction', 'language'); $data = array(); foreach($fields as $field) { $data[$field] = get_bloginfo($field); } return $data; }Skip to note 9 content
Codex
Default Usage
The default usage assigns your blog’s title to the variable
$blog_title.Skip to note 10 content
Codex
Blog Tagline
Using this example:
<br />Results in this being displayed on your blog:
Your Blog Tagline is: All things WordPress
Skip to note 11 content
Codex
Blog Title
This example assign your blog’s title to the variable
$blog_title. This returns the same result as the default usage.Skip to note 12 content
mslade
The comments regarding `get_bloginfo(‘url’)` are misleading. It will *not* necessarily return what is set in Settings > General. The protocol (“http” or “https”) will be determined by the value of `is_ssl() `, which detects if the current request is over SSL or not.