您正在寻找pre_get_posts
. 此操作在(搜索)查询的组合和实际查询之间运行,以允许您更改查询。因此,它将允许您截取以下被禁止的关键字:
add_action( \'pre_get_posts\', \'wpse338558_intercept_banned_keywords\' );
function wpse338558_intercept_banned_keywords ($query) {
$banned = array (\'word1\',\'word2\',\'word3\');
if (in_array ($query->query_vars[\'s\'], $banned)) $query->s = \'\';
}
备注:
上述内容只会清空搜索,因此不会向用户提供反馈。黑客的解决方案是使用一个非常模糊的搜索词,如jlwenuhrofslslfiehlserlisehrlilfheeipeueiq
并截获404以显示消息上述内容将只截取单个关键字。如果有人同时搜索两个被禁止的关键字,他就会通过。所以你需要一个更复杂的条件来保证这个万无一失