Ich habe mit einem Plugin gearbeitet und dieses Plugin hat eine benutzerdefinierte Feldprüfung, die nicht zu funktionieren scheint. Unter dem Code des Plugins wird ein benutzerdefiniertes Feld mit einer bestimmten Bedingung überprüft.preg_match(): Trennzeichen darf nicht alphanumerisch oder Backslash mit benutzerdefinierter Feldüberprüfung sein
<?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;
}
}?>
Das Problem liegt in der 'enthält' Zeile und geben den folgenden Fehler in meinem debug.log:
PHP Warning: preg_match(): Delimiter darf nicht alphanumerische oder Backslash
Die Prüfung wird verwendet, um zu prüfen, ob ein benutzerdefiniertes Feld entweder '30', 'text1' oder 'text2' enthält.
Jetzt könnte ich hier falsch liegen, aber ich glaube, ich verwende hier kein Trennzeichen. Was könnte hier schief gehen?
Als ich das gelesen Ich dachte, es würde funktionieren, leider nicht. Ich glaube, manchmal gibt ein benutzerdefiniertes Feld in WordPress "Array" zurück. könnte es sein, dass preg_match() nicht auf arrays funktioniert? –
Das Handbuch behauptet, es gibt nur 1 zurück (für gefunden), 0 (für nicht gefunden) und FALSE (wenn ein Fehler aufgetreten ist) – noreabu
Für mich tritt ein Fehler aber unbekannt warum. Ich denke, weil es ein Array ist, aber ich könnte falsch liegen. Ich habe den Entwickler kontaktiert und werde aktualisieren, wenn eine Antwort eingegangen ist. –