如何限制 WordPress 网站搜索频率次数?

如何限制 WordPress 网站搜索频率次数?

标签:  ,

正在查看 3 个帖子:1-3 (共 3 个帖子)
  • 作者
    帖子
  • Geticer
    参与者
    • 文章数量: 63
    @monicfenga
    楼主

    有一款插件可以实现标题中所说的效果,叫 「Search Limiter & Blocker」,但这款插件的效果太 「广泛」 了:一旦达到次数限制,插件会限制用户访问任何页面,而不是 「只限制访问搜索页面」 。

    我在其他地方搜索过类似 「wordpress limit search rate」 等关键字,没有找到结果。

    换言之,需求是:当用户在一定时间 (如 60 秒) 内 执行了超过一定次数的搜索 (如 2 次),就阻止用户继续搜索 (比如用 die 结束请求) 。

    Geticer
    参与者
    • 文章数量: 63
    @monicfenga
    楼主

    已解决。

    使用 「Search Limiter & Blocker」 插件,编辑 search-limiter-blocker.php 的第 169 行 (附近有 「Check for block」 字样),将'blocked' === $is_block 改成'blocked' === $is_block && $query->is_search 即可。

    诗语
    管理员
    • 文章数量: 5,908
    @feibisi

    解决了的话,那我补充个直接完全禁用 WordPress 搜索功能的

    /*
    //禁用 WordPress 全局搜索功能
    //https://bbs.weixiaoduo.com/topic/37960
    */
    
    function fb_filter_query( $query, $error = true ) {
    if ( is_search() ) {
    $query->is_search = false;
    $query->query_vars[s] = false;
    $query->query[s] = false;
    // to error
    if ( $error == true )
    $query->is_404 = true;
    }
    }
    add_action( 'parse_query', 'fb_filter_query' );
    add_filter( 'get_search_form', create_function( '$a', "return null;" ) );
正在查看 3 个帖子:1-3 (共 3 个帖子)
  • 哎呀,回复话题必需登录。

话题信息