WordPress禁止/屏蔽特定关键字不被搜索查询的方法

对于WordPress程序比较了解的站长朋友知道,这款开源程序确实是当前比较好用的我的网站建站系统,可是惟独的问题就是随着使用时间的推移若是咱们不加以技术处理会使得占用资源比较严重,并且可能出现各类超负载的问题。好比最近有网友就遇到一个问题,他的网站访问量比较大,固然用户经过站内搜索的频率就比较大,因而在前面咱们老部落也有分享到一款【Search Limiter & Blocker】这款插件能够设置搜索频率。php

可是这里又出现一个问题,有些搜索行为并不是用户搜索而是软件搜索,或者有些行为是用户恶意行为致使搜索结果出现违禁内容以后被恶意举报,固然实际上这样的举报成功率比较低,即使有关键字也没有实质的内容。可是基于这样的占用网站负载的行为咱们如何处理呢?css

第1、设置搜索页面读取行为

<?php
$host = $_SERVER['HTTP_REFERER'];
if (substr($host, 0, 16) != 'https://www.laobuluo.com/') {
header("location:http://跳转的其余页面或者网站");
exit;
} //判断是否是本身页面进入的
get_header();
?>

Select Code网站

Copyui

这里能够判断搜索行为是否是在本身网站搜索过去的,若是是外部行为直接跳转。spa

第2、自定义屏蔽关键字

add_action('admin_init', 'uicss_search_ban_key');
    function uicss_search_ban_key() {
        add_settings_field('uicss_search_key', '搜索关键词屏蔽', 'uicss_search_key_callback_function', 'reading');
        register_setting('reading', 'uicss_search_key');
    }
    function uicss_search_key_callback_function() {
        echo '<textarea name="uicss_search_key" rows="10" cols="50" id="uicss_search_key" class="large-text code">' . get_option('uicss_search_key') . '</textarea>';
    }
    add_action('template_redirect', 'uicss_search_ban');
    function uicss_search_ban() {
        if (is_search()) {
            global $wp_query;
            $uicss_search_key = get_option('uicss_search_key');
            if ($uicss_search_key) {
                $uicss_search_key = str_replace("\r\n", "|", $uicss_search_key);
                $BanKey = explode('|', $uicss_search_key);
                $S_Key = $wp_query->query_vars;
                foreach ($BanKey as $Key) {
                    if (stristr($S_Key['s'], $Key) != false) {
                        wp_die('请不要搜索非法关键字');
                        //header("location:https://www.laobuluo.com");
                    }
                }
            }
        }
    }

将咱们功能代码添加到网站Functions.php文件中。插件

咱们能够在WordPress后台【设置】【阅读】看到上图所示,能够添加屏蔽关键字,一行一个。而后咱们在前台搜索看看,搜索是属于屏蔽关键字库的,就直接跳转,看不到结果。code