[WordPress] wp_head()函數 – 產生Html Title核心程式碼解析

要找出產生Html Title的核心程式碼,從大多樣板header.php中的wp_head()下去追。

wp_head() //可產生Title tag
# wp-includes/general-template.php
function wp_head() {
	...
	do_action( 'wp_head' );
}

wp_head()函數是去 do_action: ‘wp_head’。

而在wp_head action中,Title要用的hook為: _wp_render_title_tag

# wp-includes\default-filters.php
add_action( 'wp_head',             '_wp_render_title_tag',            1     );

Hook: _wp_render_title_tag

# wp-includes/general-template.php
function _wp_render_title_tag() {
    ...
    echo '<title>' . wp_get_document_title() . '</title>' . "\n";
}

其Hook內,生成Title內文函數:

# wp-includes/general-template.php
function wp_get_document_title() { ...

範例:在首頁Title後面加入網站描述(‘description’ – Site tagline )

# wp_get_document_title() function return之前加入
if (is_home())	
	$title .= ' - ' . get_bloginfo('description');

總結:

WordPress若使用wp_head()作為HTML Title調用,其Title tag產生自 _wp_render_title_tag hook,而Title content產生自 wp_get_document_title()

Leave a Reply

Your email address will not be published. Required fields are marked *