Я делаю замену текста в WordPress, используя пример кода из плагина https://wordpress.org/plugins/real-time-find-and-replace/
Мой код:
<?php
function ss_ob_call( $buffer ) // $buffer contains entire page
{
$buffer = str_replace("old_text", "new_text", $buffer);
return $buffer;
}
function ss_template_redirect() {
ob_start();
ob_start( 'ss_ob_call' );
}
add_filter( 'template_include', 'ss_template_redirect' );
?>
Работает нормально, но я хочу узнать, почему создатель плагина дважды вызвал ob_start
?
И почему
add_filter( 'template_include', 'ss_ob_call' );
не работает, но
add_filter( 'template_include', 'ss_template_redirect' );
работает нормально?
Я имею в виду, почему мне нужно вызвать ob_start
для выполнения основной функции, и почему прямой вызов функции не работает?