Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
wordpress在向浏览器显示文本之前替换文本_Wordpress - Fatal编程技术网

wordpress在向浏览器显示文本之前替换文本

wordpress在向浏览器显示文本之前替换文本,wordpress,Wordpress,我的网站是使用Elementor构建的,使用GeneratePress作为默认主题,我想用数据库中的一些值替换输出的最终文本。这个插件 实时查找和替换完美地完成了替换功能,并使用了以下操作: //Handles find and replace for public pages add_action( 'template_redirect', 'far_template_redirect' ); 要使用代码替换文本,请执行以下操作: function far_ob_call( $buffer

我的网站是使用
Elementor
构建的,使用
GeneratePress
作为默认主题,我想用数据库中的一些值替换输出的最终文本。这个插件
实时查找和替换
完美地完成了替换功能,并使用了以下操作:

//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;
}
我不能直接使用这个插件,因为它用文本重新拼凑文本,我需要从数据库中获取数据,所以我必须制作自己的插件。但是,我发现了这个博客:它告诉我使用一个过滤器:

add_filter( 'template_include', 'my_callback' );
代替插件中的上述操作:

add_action( 'template_redirect', 'far_template_redirect' );
但是插件正在使用动作

使用什么


插件描述说:
“设置查找和替换规则,这些规则在WordPress生成页面后,但在发送到用户浏览器之前执行。”
这正是我想要的。也就是说,在页面生成之后,在页面发送到浏览器之前替换文本,但是插件使用了
操作
,其他博客建议使用
过滤器

我猜你在问题中放置的第二段代码可以完成这项工作。在回调内部,您可以使用
$wpdb
WP_查询
来形成所需的数据库查询,一旦从数据库中获得了值,您就可以进行替换。但是我想知道使用哪个更好?操作或过滤器?使用过滤器。过滤器的作用是修改数据并返回修改。这些操作负责在特定的执行时间段内执行代码。您能否回答我关于同一问题的另一个问题: