: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
namespace Yoast\WP\SEO\Presenters;
use Yoast\WP\SEO\Presentations\Indexable_Presentation;
* Presenter class for the document title.
class Title_Presenter extends Abstract_Indexable_Tag_Presenter {
protected $key = 'title';
* The tag format including placeholders.
protected $tag_format = '<title>%s</title>';
* The method of escaping to use.
protected $escaping = 'html';
* Gets the raw value of a presentation.
* @return string The raw value.
// This ensures backwards compatibility with other plugins using this filter as well.
\add_filter( 'pre_get_document_title', [ $this, 'get_title' ], 15 );
$title = \wp_get_document_title();
\remove_filter( 'pre_get_document_title', [ $this, 'get_title' ], 15 );
* Returns a tag in the head.
* @return string The tag.
public function present() {
if ( \is_string( $value ) && $value !== '' ) {
return \sprintf( $this->tag_format, $this->escape_value( $value ) );
* Returns the presentation title.
* @return string The title.
public function get_title() {
$title = $this->replace_vars( $this->presentation->title );
* Filter: 'wpseo_title' - Allow changing the Yoast SEO generated title.
* @param string $title The title.
* @param Indexable_Presentation $presentation The presentation of an indexable.
$title = \apply_filters( 'wpseo_title', $title, $this->presentation );
$title = $this->helpers->string->strip_all_tags( $title );