Wie entferne ich einen Filter, der ein anonymes Objekt ist?
-
-
Sie sollten das "&" aus Ihrem "& $this"entfernen,esisteine PHP 4-SacheYou should remove the `&` from your `&$this`, it's a PHP 4 thing
- 0
- 2014-03-22
- Tom J Nowell
-
2 Antworten
- Stimmen
-
- 2012-07-01
Ichbin nicht sicher,aber Sie können versuchen,einen Singleton zu verwenden.
Siemüssen die Objektreferenzin einer statischen Eigenschaft Ihrer Klasse speichern und diese statische Variable dann voneiner statischen Methode zurückgeben.Soetwas wie das:class MyClass{ private static $ref; function MyClass(){ $ref = &$this; } public static function getReference(){ return self::$ref; } }
I'm not sure but you can try using a singleton.
You must store the object reference in a static property of your class and then return that static variable from a static method. Something like this:class MyClass{ private static $ref; function MyClass(){ $ref = &$this; } public static function getReference(){ return self::$ref; } }
-
- 2013-07-28
Solange Sie das Objekt kennen (und PHP 5.2 oder höher verwenden - die aktuelle stabile PHP-Versionist 5.5,5.4 wird weiterhin unterstützt,5.3ist das Ende der Lebensdauer),können Sieeseinfachmit dem
remove_filter()
Methode.Siemüssen sichnur an das Objekt,den Methodennamen und die Priorität (falls verwendet)erinnern:remove_filter('comment_array', [$this, 'FbComments']);
Siemachenjedocheinen kleinen Fehlerin Ihrem Code.Stellen Sie
$this
nicht das kaufmännische Und&
voran,dasin PHP 4 (!) Benötigt wurde und das längst überfälligist.Dies kann den Umgangmit Ihren Hakenproblematischmachen. Lassen Siees alsoeinfach aus dem Weg:add_filter('comments_array', [$this, 'FbComments]));
Und das war's.
As long as you know the object (and you use PHP 5.2 or higher - current stable PHP version is 5.5, 5.4 is still supported, 5.3 is end of life), you can just remove it with the
remove_filter()
method. All you need to remember is the object, the method-name and the priority (if used):remove_filter('comment_array', [$this, 'FbComments']);
However you do a little mistake in your code. Don't prefix
$this
with the ampersand&
, that was needed in PHP 4 (!) and it's long-time overdue. This can render dealing with your hooks problematic, so just leave it out of the way:add_filter('comments_array', [$this, 'FbComments]));
And that's it.
-
Sie haben von außen keinen Zugriff auf "$this" (ein anderes Plugin/Theme).You have no access to `$this` from the outside (another plugin/theme).
- 2
- 2013-07-28
- fuxia
Inmeiner Datei
functions.php
möchteich denfolgenden Filterentfernen,bin mir abernicht sicher,wieich dasmachen soll,daes sich umeine Klasse handelt.Wie sollteremove_filter()
aussehen?Esistin Zeile 88 hier .