it-swarm.com.de

Entleert es den Speicher, wenn Sie mehrmals dieselbe Aktion ausführen?

Derzeit habe ich drei Funktionen, die mit pre_get_posts ausgeführt werden. Ich nenne sie so:

add_action( 'pre_get_posts', 'private_groups' );
add_action( 'pre_get_posts', 'search_results' );
add_action( 'pre_get_posts', 'name_profiles' );

Dies ermöglicht es mir, die Funktionen sauber und getrennt zu halten, ruft aber dreimal dieselbe Aktion auf, anstatt eine kombinierte Funktion einmal aufzurufen, was Ressourcen verschlingt?

7
SinisterBeard

Ich denke du meinst

add_action( 'pre_get_posts', 'private_groups' );
add_action( 'pre_get_posts', 'search_results' );
add_action( 'pre_get_posts', 'name_profiles' );

versus

add_action( 'pre_get_posts', 'combined_into_single_callback' );

Sie können den Unterschied einfach überprüfen, indem Sie z. memory_get_usage() und timer_stop() . Viele gute Plugins helfen dabei.

Ich würde sagen, gehen Sie mit dem ersten, da es sich um nicht verwandte Rückrufe zu handeln scheint und wahrscheinlich einfacher zu warten ist.

Ich würde erwarten, dass dies hauptsächlich von den Rückruffunktionen abhängt, die Sie dort ausführen: private_groups(), search_results() und name_profiles() versus combined_into_single_callback().

Das Hook-Setup selbst sollte keine Ressourcen belasten, da es sich nur um drei neue zusätzliche Elemente in einem globalen Array handelt.

Wenn Sie den pre_get_posts verwenden, sollten Sie darauf achten, nur auf die entsprechende WP_Query-Instanz abzuzielen und teure Codeblöcke nicht für alle Instanzen auszuführen.

5
birgire