我们可以阻止用户输入某些单词,但只有输入了被阻止的单词,它们才会被阻止。
例如,如果有人键入“word 1”,下面的过滤器将阻止,但不会阻止“word 11”。
如何调整下面的过滤器,以便只要word 1在任何字符中,它就被阻止,并且“word 11”或“word 11133”等被阻止,因为它包含被禁止的“word 1”?
试图找出一个简单的解决方案以上?
到目前为止,我们使用的代码是:
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 = '';
}
可以向$banned数组添加更多内容,但这需要考虑每一种可能的情况,这是不现实的。
1条答案
按热度按时间iqih9akk1#
你可以试试这个