Home >Backend Development >PHP Tutorial >Detailed explanation of the usage of wp_title() function in WordPress development, wordpresswp_title_PHP tutorial
wp_title function in WordPress is a function used to display the titles of articles, pages, categories, etc., But in the homepage index, this function will not display anything. This function has always been used in the official WordPress theme, but it is always ignored in many customized themes.
Detailed explanation of function meaning
The wp_title function is used to display the title of the page. For example, on the article page, the article title is displayed; on the category page, the category name is displayed, but on the homepage index, this function will not display anything.
It's a bit like the adaptive usage of the two functions get_the_title and single_cat_title() in WordPress (automatically determine whether it is a page, article, category, archive, or tag).
Function declaration
It’s a bit long, I hope you can read it patiently, even just once.
/** * Display or retrieve page title for all areas of blog. * * By default, the page title will display the separator before the page title, * so that the blog title will be before the page title. This is not good for * title display, since the blog title shows up on most tabs and not what is * important, which is the page that the user is looking at. * * There are also SEO benefits to having the blog title after or to the 'right' * or the page title. However, it is mostly common sense to have the blog title * to the right with most browsers supporting tabs. You can achieve this by * using the seplocation parameter and setting the value to 'right'. This change * was introduced around 2.5.0, in case backwards compatibility of themes is * important. * * @since 1.0.0 * * @param string $sep Optional, default is '»'. How to separate the various items within the page title. * @param bool $display Optional, default is true. Whether to display or retrieve title. * @param string $seplocation Optional. Direction to display title, 'right'. * @return string|null String on retrieve, null when displaying. */ function wp_title($sep = '»', $display = true, $seplocation = '') { global $wpdb, $wp_locale; $m = get_query_var('m'); $year = get_query_var('year'); $monthnum = get_query_var('monthnum'); $day = get_query_var('day'); $search = get_query_var('s'); $title = ''; $t_sep = '%WP_TITILE_SEP%'; // Temporary separator, for accurate flipping, if necessary // If there is a post if ( is_single() || ( is_home() && !is_front_page() ) || ( is_page() && !is_front_page() ) ) { $title = single_post_title( '', false ); } // If there's a category or tag if ( is_category() || is_tag() ) { $title = single_term_title( '', false ); } // If there's a taxonomy if ( is_tax() ) { $term = get_queried_object(); $tax = get_taxonomy( $term->taxonomy ); $title = single_term_title( $tax->labels->name . $t_sep, false ); } // If there's an author if ( is_author() ) { $author = get_queried_object(); $title = $author->display_name; } // If there's a post type archive if ( is_post_type_archive() ) $title = post_type_archive_title( '', false ); // If there's a month if ( is_archive() && !empty($m) ) { $my_year = substr($m, 0, 4); $my_month = $wp_locale->get_month(substr($m, 4, 2)); $my_day = intval(substr($m, 6, 2)); $title = $my_year . ( $my_month ? $t_sep . $my_month : '' ) . ( $my_day ? $t_sep . $my_day : '' ); } // If there's a year if ( is_archive() && !empty($year) ) { $title = $year; if ( !empty($monthnum) ) $title .= $t_sep . $wp_locale->get_month($monthnum); if ( !empty($day) ) $title .= $t_sep . zeroise($day, 2); } // If it's a search if ( is_search() ) { /* translators: 1: separator, 2: search phrase */ $title = sprintf(__('Search Results %1$s %2$s'), $t_sep, strip_tags($search)); } // If it's a 404 page if ( is_404() ) { $title = __('Page not found'); } $prefix = ''; if ( !empty($title) ) $prefix = " $sep "; // Determines position of the separator and direction of the breadcrumb if ( 'right' == $seplocation ) { // sep on right, so reverse the order $title_array = explode( $t_sep, $title ); $title_array = array_reverse( $title_array ); $title = implode( " $sep ", $title_array ) . $prefix; } else { $title_array = explode( $t_sep, $title ); $title = $prefix . implode( " $sep ", $title_array ); } $title = apply_filters('wp_title', $title, $sep, $seplocation); // Send it out if ( $display ) echo $title; else return $title; }
Usage
<?php wp_title( $sep, $echo, $seplocation ); ?>
Detailed explanation of parameters
Summary
There are many functions with the same function in WordPress, which are encapsulated from the basic level to the advanced level and finally reach the usage layer. Of course, if we need some flexible usage, we can directly use the functions in the middle layer. If we are lazy If so, we can directly use the most advanced layer of functions, such as this function wp_title. In fact, we look at this function from the source code. wp performs it for us on various types of pages such as categories, tags, articles, archives, authors, pages, etc. Judge and call different title functions according to different pages to achieve the purpose.
If you have time, you can conduct an in-depth study of the following functions to perform SEO more flexibly
single_post_title function to extract the title from the article page
single_term_title tag (tag), cat (category), date, function to extract title similar to single_cat_title() function
get_queried_object Function to extract objects from the author page (the object contains the author name)
post_type_archive_title() file and other functions to extract the title
What are you waiting for?
GO GO GO!