如何限制 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,925
    @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 個帖子)
  • 哎呀,回覆話題必需登錄。

話題信息

  • 當前位於:疑難雜症
  • 2 條回覆
  • 2 個參與人
  • 最後回覆:<a href="https://bbs.weixiaoduo.com/users/feibisi/" title=" 查看詩語的個人資料" class="bbp-author-link"><span class="bbp-author-name"> 詩語</span></a>
  • 上次活動:<a href="https://bbs.weixiaoduo.com/topic/37960/#post-37965" title=" 回覆至:如何限制 WordPress 網站搜索頻率次數?">4 年、 3 月前</a>