我需要在标题中显示一个元标记,用于单数自定义帖子类型“通信”,如下所示:
<meta name="citation_title" content="single post title is here" />
我尝试使用此代码:
<?php if ( is_singular( \'communications\' ) ) {
echo \'<meta name="citation_title" content="\' . the_title( \'\', \'\' ).\'" />\' . \'\';
} ?>
但结果是在元之前有了一个标题:
single post title is here<meta name="citation_title" content="" />
有什么帮助吗?
最合适的回答,由SO网友:fuxia 整理而成
使用the_title_attribute()
打印属性。帖子标题可能包含HTML,因此您需要该函数返回的转义内容
还禁止立即打印,因为这会将输出设置在echo
陈述
if ( is_singular( \'communications\' ) ) {
$title = the_title_attribute( [ \'echo\' => FALSE ] );
echo \'<meta name="citation_title" content="\' . $title . \'" />\' . PHP_EOL;
}
另一个问题是,为什么你的主题对帖子类型了解这么多。
Custom post types should always be registered in a plugin. 所以代码也应该转到插件。结果是这样的:
add_action( \'wp_head\', \'add_citation_title\' );
function add_citation_title() {
if ( ! is_singular( \'communications\' ) )
return;
$title = the_title_attribute( [ \'echo\' => FALSE ] );
echo \'<meta name="citation_title" content="\' . $title . \'" />\' . PHP_EOL;
}