Php Wordpress,要更改搜索词吗?
我想知道在Wordpress中更改搜索词的过滤器是什么 例如,如果有人键入xxx,我如何在它进入wordpress搜索引擎之前将其更改为yyyPhp Wordpress,要更改搜索词吗?,php,wordpress,search,plugins,filter,Php,Wordpress,Search,Plugins,Filter,我想知道在Wordpress中更改搜索词的过滤器是什么 例如,如果有人键入xxx,我如何在它进入wordpress搜索引擎之前将其更改为yyy 干杯。在它进入wordpress之前,如果不使用htaccess重写规则,您将无法更改它。但是,您可以创建一个自定义过滤器,使用标准浏览器重定向将特定搜索词手动重定向到新搜索查询中。在我的示例中,我不得不使用javascript位置函数,因为在将任何内容输出到浏览器之前,我不知道如何通过过滤器捕获搜索变量(从而限制了我使用内置wordpress重定向函数
干杯。在它进入wordpress之前,如果不使用htaccess重写规则,您将无法更改它。但是,您可以创建一个自定义过滤器,使用标准浏览器重定向将特定搜索词手动重定向到新搜索查询中。在我的示例中,我不得不使用javascript位置函数,因为在将任何内容输出到浏览器之前,我不知道如何通过过滤器捕获搜索变量(从而限制了我使用内置wordpress重定向函数或标准php头重定向的能力) 下面的代码将对“test”进行任何搜索,并将其重定向到“smickie”搜索。这是非常快速和肮脏的组合,所以你会想修改它,以满足你的需求,显然,但希望这可以让你开始在正确的方向
function redirect_searchterm() {
if (is_search()) {
$search_query = get_search_query();
if ($search_query == "test") {
$new_searchquery = "smickie";
?>
<script type="text/javascript">
<!--
location.replace("<?php echo get_option('siteurl') . '/?s=' . $new_searchquery .'&submit=Search'; ?>");
-->
</script>
<?php
}
}
}
add_action('wp_head', 'redirect_searchterm', 1);
函数重定向\u searchterm(){
if(is_search()){
$search\u query=get\u search\u query();
如果($search_query==“test”){
$new\u searchquery=“smickie”;
?>
在进入wordpress之前,如果不使用htaccess重写规则,您将无法对其进行更改。但是,您可以创建一个自定义筛选器,使用标准浏览器重定向将特定搜索词手动重定向到新搜索查询中。在我的示例中,我不得不使用javascript位置函数,因为我无法计算如何在任何东西输出到浏览器之前通过过滤器捕获搜索变量(从而限制了我使用内置wordpress重定向函数或标准php头重定向的能力)
下面的代码将对“test”进行任何搜索,并将其重定向到“smickie”搜索。这是一个非常快速和肮脏的组合,因此您显然希望修改它以满足您的需要,但希望这可以让您从正确的方向开始
function redirect_searchterm() {
if (is_search()) {
$search_query = get_search_query();
if ($search_query == "test") {
$new_searchquery = "smickie";
?>
<script type="text/javascript">
<!--
location.replace("<?php echo get_option('siteurl') . '/?s=' . $new_searchquery .'&submit=Search'; ?>");
-->
</script>
<?php
}
}
}
add_action('wp_head', 'redirect_searchterm', 1);
函数重定向\u searchterm(){
if(is_search()){
$search\u query=get\u search\u query();
如果($search_query==“test”){
$new\u searchquery=“smickie”;
?>
当它到达WordPress时,在WP查询数据库之前更改它:
$search_replacements = array(
'find' => 'replace',
'find2' => 'replace2',
'var' => 'foo'
);
function modify_search_term($request_vars) {
global $search_replacements;
if (!empty($request_vars['s']) && !empty($search_replacements[$request_vars['s']])) {
$request_vars['s'] = $search_replacements[$request_vars['s']];
}
return $request_vars;
}
add_filter('request', 'modify_search_term');
这将允许您处理尽可能多的条件,并添加到$replacements数组中
add_过滤器中的99是让它延迟运行,以便您是最后一个对查询进行更改的人(这可能很重要,取决于您安装的其他插件)
您的URL仍将指示原始术语,但您保存了一个页面负载。如果您有一个高流量的网站,那么您不想重定向以获得一个漂亮的URL。在WP查询数据库之前,当它到达WordPress时更改它:
$search_replacements = array(
'find' => 'replace',
'find2' => 'replace2',
'var' => 'foo'
);
function modify_search_term($request_vars) {
global $search_replacements;
if (!empty($request_vars['s']) && !empty($search_replacements[$request_vars['s']])) {
$request_vars['s'] = $search_replacements[$request_vars['s']];
}
return $request_vars;
}
add_filter('request', 'modify_search_term');
这将允许您处理尽可能多的条件,并添加到$replacements数组中
add_过滤器中的99是让它延迟运行,以便您是最后一个对查询进行更改的人(这可能很重要,取决于您安装的其他插件)
您的URL仍将指示原始术语,但您保存了一个页面负载。如果您有一个高流量的网站,那么您不希望为了获得一个漂亮的URL而重定向。您可以使用过滤器更改查询的任何内容。它的WordPress开发人员应该被迫高呼“这是一个过滤器”在他们被允许进行任何开发之前。你可以使用过滤器更改查询的任何内容。它的WordPress开发人员应该被迫高呼“有一个过滤器用于此”在他们被允许做任何开发之前。第二,我不知道请求钩子,但是的…只有一个才有意义。这绝对是一个更干净的解决方案,重定向只是为了在url中有新的术语没有意义。第二,我不知道请求钩子,但是的…只有在那里才有意义这绝对是一个更干净的解决方案,仅仅为了在url中添加新的术语而重定向是没有意义的。