как эхо метатег в заголовке с помощью php

Мне нужно отобразить метатег в заголовке для особых сообщений типа «сообщение» следующим образом:

<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="" /> 

любая помощь, пожалуйста?

Используйте the_title_attribute() для печати атрибута. Заголовок сообщения может содержать HTML, поэтому вам нужно получить экранированный контент, возвращаемый этой функцией.
Также отключите немедленный отпечаток, потому что он установит выходной сигнал перед оператором echo .

 if ( is_singular( 'communications' ) ) { $title = the_title_attribute( [ 'echo' => FALSE ] ); echo '<meta name="citation_title" content="' . $title . '" />' . PHP_EOL; } 

Другой вопрос: почему ваша тема так много знает о типе сообщения. Пользовательские типы сообщений всегда должны быть зарегистрированы в плагине . Так что код тоже должен перейти к плагину. Вот как выглядит результат:

 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; }