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_查询
来形成所需的数据库查询,一旦从数据库中获得了值,您就可以进行替换。但是我想知道使用哪个更好?操作或过滤器?使用过滤器。过滤器的作用是修改数据并返回修改。这些操作负责在特定的执行时间段内执行代码。您能否回答我关于同一问题的另一个问题: