Come rimuovere un filtro che è un oggetto anonimo?
-
-
Dovresti rimuovere `&` daltuo `& $this`,è una cosa PHP 4You should remove the `&` from your `&$this`, it's a PHP 4 thing
- 0
- 2014-03-22
- Tom J Nowell
-
2 risposta
- voti
-
- 2012-07-01
Nonne sono sicuro,mapuoiprovare a utilizzare un singleton.
Ènecessariomemorizzareil riferimento all'oggettoin unaproprietà statica della classee quindi restituire quella variabile statica da unmetodo statico.Qualcosa di simile: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
Finché conosci l'oggetto (e usi PHP 5.2 o superiore - l'attuale versione stabile di PHP è 5.5,5.4 è ancora supportata,5.3 è lafine del ciclo di vita),puoi semplicemente rimuoverlo conil
remove_filter()
metodo.Tutto quello che devi ricordare è l'oggetto,ilnome delmetodoe lapriorità (se utilizzata):remove_filter('comment_array', [$this, 'FbComments']);
Tuttaviafai unpiccoloerroreneltuo codice.Non anteporre
$this
allae commerciale&
,cheeranecessariain PHP 4 (!) Ed èin ritardo datempo.Questopuò rendereproblematicoiltrattamento deituoi hook,quindi lascialofuorimano:add_filter('comments_array', [$this, 'FbComments]));
E questo ètutto.
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.
-
Non hai accesso a `$this` dall'esterno (un altroplugin/tema).You have no access to `$this` from the outside (another plugin/theme).
- 2
- 2013-07-28
- fuxia
Nelmiofile
functions.php
vorrei rimuovereilfiltro sottostante,manon sono sicuro di comefarlopoiché sitrovain una classe.Come dovrebbe apparireremove_filter()
?È sulla linea 88 qui .