WordPress заменить текст, прежде чем показывать его в браузере - PullRequest
0 голосов
/ 15 января 2020

Мой сайт построен с использованием Elementor с использованием GeneratePress в качестве темы по умолчанию, и я хочу заменить окончательный текст вывода некоторыми значениями из базы данных. Этот плагин
Real-Time Find and Replace https://wordpress.org/plugins/real-time-find-and-replace/ отлично выполняет функцию замены и использует действие:

//Handles find and replace for public pages
add_action( 'template_redirect', 'far_template_redirect' );

для замены текста с помощью кода:

function far_ob_call( $buffer ) { // $buffer contains entire page

    $far_settings = get_option( 'far_plugin_settings' );
    if ( is_array( $far_settings['farfind'] ) ) {
        foreach ( $far_settings['farfind'] as $key => $find ) {
            if( isset( $far_settings['farregex'][$key] ) ) {
                $buffer = preg_replace( $find, $far_settings['farreplace'][$key], $buffer );
            } else {            
                $buffer = str_replace( $find, $far_settings['farreplace'][$key], $buffer );
            }
        }
    }
    return $buffer;
}

Я не могу использовать плагин напрямую, потому что он перераспределяет текст с текстом, и мне нужно извлекать данные из базы данных, поэтому я должен сделать свой собственный плагин. Но я нашел этот блог: https://markjaquith.wordpress.com/2014/02/19/template_redirect-is-not-for-loading-templates/, который говорит мне использовать фильтр:

add_filter( 'template_include', 'my_callback' );

вместо вышеуказанного действия в плагине:

add_action( 'template_redirect', 'far_template_redirect' );

Но плагин использует действие.

Что использовать?

Описание плагина гласит: "Set up find and replace rules that are executed AFTER a page is generated by WordPress, but BEFORE it is sent to a user's browser." это то, что я точно хочу. То есть заменить текст после создания страницы и непосредственно перед отправкой страницы в браузер, но плагин использует для этого action, а другие блоги предлагают использовать filter?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...