我是WordPress的新手,刚刚安装了3.3.1版本。
我做了一些关于这个问题的谷歌搜索,并找到了一些答案,但它们与版本2.7相关,并且是2-3岁。
基本上,wp_title
函数在每个页面上都能正常工作,除了我的主页,它返回空白,我没有得到任何标题。我可以硬编码标题,但我宁愿不这样做。
有罪的代码行:
<title><?php wp_title ( '| So Fresh n\' So Clean', true,'right' ); ?></title>
我找不到关于3.3.1中发生的这个问题的任何事情,所以显然我做错了。
答案 0 :(得分:102)
这是我从Codex读到的内容:
如果您使用的是带有自定义循环和内容的自定义主页,那么 将有一个空的
wp_title
。这是一个整洁的黑客添加 主页上wp_title
位置的说明/标语:
<title><?php bloginfo('name'); ?> | <?php is_front_page() ? bloginfo('description') : wp_title(''); ?></title>
因此,使用is_front_page()
获取主页上的标题,就像上面代码中的建议一样。
答案 1 :(得分:13)
但是如果您使用静态主页,则代码为:
<title><?php bloginfo('name'); ?> » <?php is_front_page() ? bloginfo('description') : wp_title(''); ?></title>
答案 2 :(得分:9)
<强>更新强> 对于WordPress版本(&gt; = 4.4)
试试这个
function some_name(){
add_theme_support( 'title-tag' );
}
add_action( 'after_setup_theme', 'some_name' );
在functions.php中执行此操作并删除&#39; title&#39;来自头部的标签......
答案 3 :(得分:7)
根据Amna的回答,我想出了以下代码,当有一个代码时,它应该显示页面标题,然后是网站名称。
<?php wp_title(' - ',TRUE,'right'); bloginfo('name'); ?>
帖子/页面输出:“页面标题 - 站点名称”
主页输出:“网站名称”
显然,这也可以交换显示网站名称。
<?php bloginfo('name'); wp_title(' - '); ?>
发布/页面输出:“网站名称 - 页面标题”
主页输出:“网站名称”
这也可以与条件结合使用,以便在查看主页时显示网站描述。
<?php bloginfo('name'); echo ' - '; is_front_page() ? bloginfo('description') : wp_title(''); ?>
发布/页面输出:“网站名称 - 页面标题”
主页输出:“网站名称 - 网站描述”
答案 4 :(得分:3)
对于WordPress上的谷歌搜索wp_title为空,这是第一个结果。所以我认为我可能会为此分享最优雅的解决方案 在functions.php中为wp_title添加一个过滤器。
function custom_wp_title( $title, $sep ) {
if ( is_feed() ) {
return $title;
}
global $page, $paged;
// Add the blog name
$title .= get_bloginfo( 'name', 'display' );
// Add the blog description for the home/front page.
$site_description = get_bloginfo( 'description', 'display' );
if ( $site_description && ( is_home() || is_front_page() ) ) {
$title .= " $sep $site_description";
}
// Add a page number if necessary:
if ( ( $paged >= 2 || $page >= 2 ) && ! is_404() ) {
$title .= " $sep " . sprintf( __( 'Page %s', '_s' ), max( $paged, $page ) );
}
return $title;
}
add_filter( 'wp_title', 'custom_wp_title', 10, 2 );
答案 5 :(得分:1)
我使用这个,它永远不会失败:
function pageTitle($echo){
$title = "";
global $paged;
if (function_exists('is_tag') && is_tag()) {
$title .= single_tag_title(__("Tag Archive for "" , 'circle'),false);
$title .= '" - ';
}
elseif (is_archive()) {
$title .= wp_title('',true);
//$title .= __(' Archive - ' , 'circle');
$title .= __(' - ' , 'circle');
}
elseif (is_search()) {
$title .= __('Search for "' , 'circle') . esc_html(get_search_query()).'" - ';
}
elseif (!(is_404()) && (is_single()) || (is_page())) {
$title .= wp_title('',true);
$title .= ' - ';
}
elseif (is_404()) {
$title .= __('Not Found - ' , 'circle');
}
if (is_home()) {
$title .= get_bloginfo('name');
$title .= ' - ';
$title .= get_bloginfo('description');
}
else {
$title .= get_bloginfo('name');
}
if ($paged>1) {
$title .= ' - page ' . $paged;
}
if ( !$echo ) return $title;
echo $title;
}
请注意,您可能希望更改其中的翻译域。
答案 6 :(得分:1)
Codex的新攻击如下:
<title><?php wp_title(''); ?></title>
然后在主题文件中的“functions.php”:
add_filter( 'wp_title', 'baw_hack_wp_title_for_home' );
function baw_hack_wp_title_for_home( $title )
{
if( empty( $title ) && ( is_home() || is_front_page() ) ) {
return __( 'Home', 'theme_domain' ) . ' | ' . get_bloginfo( 'description' );
}
return $title;
}
答案 7 :(得分:1)
不需要。只需在 header.php
的末尾添加<? Php wp_head ();?>
代码
祝你好运。
答案 8 :(得分:0)
我在WordPress网站上使用此方法
//Meta Header
if ( ! function_exists( 'dima_wp_title' ) ) :
function dima_wp_title( $title ) {
if ( is_front_page() ) {
return get_bloginfo( 'name' ) . ' | ' . get_bloginfo( 'description' );
} elseif ( is_feed() ) {
return ' | RSS Feed';
} else {
return trim( $title ) . ' | ' . get_bloginfo( 'name' );
}
}
add_filter( 'wp_title', 'dima_wp_title' );
endif;
答案 9 :(得分:0)
谈话的后期......
但是,如果您想使用您用于静态首页的页面的实际标题,可以使用以下内容:
if (is_front_page())
{
$title = single_post_title( '', false );
}
虽然在wp_title()的实际源代码中,有以下内容,具体为静态首页禁用此功能:
if ( is_single() || ( is_home() && ! is_front_page() ) || ( is_page() && ! is_front_page() ) ) {
$title = single_post_title( '', false );
}
我怀疑这是有充分理由的。所以,请谨慎行事。
答案 10 :(得分:0)
我的2美分“雾湖”主题,在主页上没有标题,并在所有其他页面上添加了错误的标题。
从header.php中删除以下行解决了这个问题,因为Wordpress现在自己注入标记:
<title><?php wp_title( '|', true, 'right' ); ?></title>
我查阅了以下页面 - https://make.wordpress.org/themes/2015/08/25/title-tag-support-now-required/
答案 11 :(得分:0)
您还可以在标题标签中放入以下内容:
<?php
if (is_front_page()) { ?>
Home | <?php bloginfo('description');
} else {
wp_title('|', 'true', 'right'); bloginfo('description');
} ?>