0
我一直在使用插件,并且此插件有一个自定义字段检查,它似乎不起作用。在用于检查具有特定条件的自定义字段的插件的代码下方。preg_match():分隔符不能是字母数字或带自定义字段检查的反斜杠
<?php if ($custom_field_value != null) {
if (($set['condition']['value']['operator'] == 'is' && $set['condition']['value']['value'] == $custom_field_value)
|| ($set['condition']['value']['operator'] == 'is_not' && $set['condition']['value']['value'] != $custom_field_value)
|| ($set['condition']['value']['operator'] == 'contains' && preg_match($set['condition']['value']['value'], $custom_field_value)) //The problematic line.
|| ($set['condition']['value']['operator'] == 'does_not_contain' && !preg_match($set['condition']['value']['value'], $custom_field_value))
|| ($set['condition']['value']['operator'] == 'lt' && $set['condition']['value']['value'] < $custom_field_value)
|| ($set['condition']['value']['operator'] == 'le' && $set['condition']['value']['value'] <= $custom_field_value)
|| ($set['condition']['value']['operator'] == 'eq' && $set['condition']['value']['value'] == $custom_field_value)
|| ($set['condition']['value']['operator'] == 'ge' && $set['condition']['value']['value'] >= $custom_field_value)
|| ($set['condition']['value']['operator'] == 'gt' && $set['condition']['value']['value'] > $custom_field_value)) {
$proceed = true;
}
}?>
问题就出在 '包含' 行内,给下面的错误在我的debug.log:
PHP的警告:的preg_match():分隔符不能是字母,数字或反斜线
该检查用于检查自定义字段是否包含'30','text1'或'text2'。
现在我可能在这里错了,但我相信我没有在这里使用任何分隔符。这里可能会出现什么问题?
当我读到这我认为它会起作用,可悲的是它不会。我相信有时wordpress中的一个自定义字段会返回'Array'。 preg_match()对阵列不起作用吗? –
该手册声明,它只返回1(找到),0(找不到)和FALSE(如果发生错误) – noreabu
对我来说,一个错误发生,但未知原因。我想是因为它是一个数组,但我可能是错的。我已经联系了开发人员,并会在收到答案时进行更新。 –