Was ist der Unterschied zwischen dem direkten Aufruf einer function und dem Aufruf einer function mit add_action?

Was ist der Unterschied zwischen zwei Codes? (Rufen Sie eine function direkt auf und rufen Sie eine function mit add_action auf)

function pp_submit__link_form(){ if(isset( $_POST['action']) && $_POST['action']="submit_link" ){ echo "Hello"; } } add_action( 'init', 'pp_submit__link_form' ); 

 function pp_submit__link_form(){ if(isset( $_POST['pp_action']) && $_POST['pp_action']="submit_link" ){ echo "Hello"; } } pp_submit__link_form(); 

Solutions Collecting From Web of "Was ist der Unterschied zwischen dem direkten Aufruf einer function und dem Aufruf einer function mit add_action?"

Im ersten Codeblock wird pp_submit__link_form() für die init Aktion in WordPress ausgetriggers.

Im zweiten Codeblock wird pp_submit__link_form() sofort zum Zeitpunkt des pp_submit__link_form() der function ausgetriggers.

Im ersten Beispiel registrieren Sie die function ‘pp_submit__link_form’ im Aktionshaken ‘init’. Das heißt also, wenn WordPress die Aktion ‘init’ austriggers (durch Aufruf von do_action (‘init’)), wird Ihr functionsaufruf eingeschlossen.

Sehen Sie den WordPress Codex auf Hooks, Aktionen und Filtern

Im zweiten Beispiel rufen Sie diese function einfach in der allgemeinen Ausführung Ihres PHP-Skripts auf. So wird es jedes Mal ausgetriggers, wenn Ihr Plugin geladen wird.

In Ihrem Beispiel sieht es so aus, als ob Sie etwas mit den $ _POST-Daten machen wollen (vielleicht, wenn jemand ein Formular postet), also ist das erste Beispiel das richtige.

Ein weiterer Grund, add_action () zu verwenden, wenn Sie eine function aufrufen möchten, ist das Gegenteil, die remove_action (), die es jedem Plugin / Script erlaubt, die function nicht aufzurufen, wenn die Aktion ausgeführt wird.

add_action / add_filter, remove_action / remove_filter sind die besten für den Entwickler, um die Anpassung eines Plugins, Designs und coreverhaltens zu maximieren.

In jedem laufenden process können Sie eine aufgerufene function entfernen und direkt danach mit add_action () eine eigene function hinzufügen. Zum Beispiel aus deinem Code:

 remove_action('init', 'pp_submit__link_form'); action_action('init', 'my_pp_submit__link_form); function my_pp_submit__link_form(){ if(isset( $_POST['action']) && $_POST['action']="submit_link" ){ echo "Good bye, see you later, I'm tired"; } } 

1) Wenn Sie direkt ausführen, können Sie nicht auf fast jede wichtige globale WP-Variable zugreifen, da die Abfrage / Variablen innerhalb von add_action functionen ausgeführt werden.

2) Mit add_action Sie die function bei Bedarf aus. Wenn Sie beispielsweise den angemeldeten Benutzer überprüfen möchten, sollten Sie dies nach dem Start der Aktion ‘init’ tun.

3) add_action ist in den meisten Fällen der empfohlene Weg

4) mit add_action du die function auch “entfernbar”, wenn du einige Bedingungen add_actionadd_action :

 if($url = 'mypage.php') { remove_action('wp_footer'); } 

5) mit add_action machen Sie Ihre function so, dass sie von DEBUGER-Plugins lesbar ist, um die Ausführungszeit der function, die CPU-Auslastung usw. zu überprüfen …