\'Title-tag\' 是4.1版中引入的主题功能,我想将其用作主题的默认标题。此功能应添加到after_setup_theme
或init
行动建议使用here. 这个功能的使用非常适合我。但是:
此外,我有一个自定义标题功能,可以使用选项树框架启用/禁用该功能。此框架直接加载到functions.php
. 然后,我在after_setup_theme
优先级为2:
add_action( \'after_setup_theme\', \'theme_functions\', 2);
这是为我的自定义标题添加的过滤器:
add_filter( \'wp_title\', \'custom_titles\', 10, 2 );
当我禁用
custom_titles()
功能,新功能
title-tag
工作非常完美,但当我启用自定义项时,它会返回两次标题。确切地说:
<title>Front page meta title example</title>
Front page meta title example<title></title>
第一个是正确的,它使用
wp_title()
函数插入到
header.php
在
title
标记,但第二个标记包含在
wp_head()
作用
事实上,我的custom_titles()
无需使用新功能,功能即可完美运行title-tag
. 因此,当我尝试同时使用两者时,似乎会出现冲突。
你认为把这两个功能都放进去是一个好的解决方案吗after_theme_setup
简单条件语句中的优先级1,还是有更好的方法?看来解决办法应该更容易些。
<小时>UPDATE: 这太疯狂了。如果我删除title
标题的标记要使用新功能,主题检查将返回:
必需:主题需要有标签,最好是在标题中。php文件。
如果删除新功能以使用自定义函数,主题检查将返回:
建议:在主题中找不到add\\u theme\\u support(“title tag”)的参考。建议主题在WordPress 4.1及以上版本中实现此功能。
老实说:LOL.添加add_theme_support
在里面functions.php
, 和title
中的标记header.php
正如他们«推荐»&;«REQUIRE»分别返回两次标题!
最合适的回答,由SO网友:cybmeta 整理而成
你的问题是你不能使用wp_title()
如果主题已经支持title-tag
. 这个<head>
你的主题应该是这样的:
<head>
<meta charset="<?php bloginfo( \'charset\' ); ?>">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<?php wp_head(); ?>
</head>
过滤器和标题标签支持:
add_action( \'after_setup_theme\', \'theme_functions\' );
function theme_functions() {
add_theme_support( \'title-tag\' );
}
add_filter( \'wp_title\', \'custom_titles\', 10, 2 );
function custom_titles( $title, $sep ) {
//Check if custom titles are enabled from your option framework
if ( ot_get_option( \'enable_custom_titles\' ) === \'on\' ) {
//Some silly example
$title = "Some other title" . $title;;
}
return $title;
}
如果你这样做,它会工作得很好。
SO网友:Unix
我已经找到了一个解决方案,所以我相信它对其他人会有用。
第一个:自定义标题Explanation: 如果我的custom_titles()
功能已启用,请在中加载该功能functions.php
在after_theme_setup
优先级2,并显示title
中的标记header.php
文件
在函数中。php:
if ( ot_get_option( \'enable_custom_titles\' ) === \'on\' ) {
// The custom titles function
}
在标题中。php:
<?php if ( ot_get_option( \'enable_custom_titles\' ) === \'on\' ) : ?>
<title><?php wp_title( \'|\', true, \'right\' ); ?></title>
<?php endif; ?>
<!-- The next will return the new WP titles feature if custom titles are off -->
<?php wp_head(); ?>
然后:标题标签支持
Explanation: 如果我的
custom_titles()
已禁用,
add_theme_support(\'title-tag\');
在里面
functions.php
在
after_theme_setup
优先级1。
所以,在函数中。php:
if ( ot_get_option( \'enable_custom_titles\' ) === \'off\' ) {
add_theme_support( \'title-tag\' );
}
关于
after_theme_setup
优先级,在我的例子中,只需要在使用之前加载选项树框架
ot_get_option()
功能,因此,如果有人使用不同的选项框架,则可能会有所不同(不需要)。
现在,我的主题在4.1版中有了新的标题功能,并使用元框定制了SEO标题:两者都可用。(我知道这是插件领域,但很高兴在主题中集成了一些基本特性——«基本»)。由于这一点,客户端将对标题的显示方式有更多的控制。