正如你所说,wp_title
仅适用于当前帖子,因此将其保存在变量中以用于非当前帖子可能有点棘手。
然而wp_title
不仅适用于单个帖子/页面/cpt,还适用于各种类型的归档。因此,很容易创建一个自定义函数来复制与单个帖子/页面相关的核心函数部分。
function get_the_wp_title( $postid = \'\', $sep = \'»\', $seplocation = \'\' ) {
if ( ! $postid ) return \'\';
$post = get_post($postid);
if ( ! is_object($post) || ! isset($post->post_title) ) return \'\';
$t_sep = \'%WP_TITILE_SEP%\';
$title = apply_filters(\'single_post_title\', $post->post_title, $post);
$prefix = \'\';
if ( ! empty($title) ) $prefix = " $sep ";
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 );
}
return apply_filters(\'wp_title\', $title, $sep, $seplocation);
}
代码在很大程度上是从
core wp_title
function.
请注意,为定义的所有筛选器wp_title
也适用于此功能。