it-swarm.com.de

Wie füge ich die von action-hooked function aufgerufene Funktion korrekt zu functions.php hinzu?

Ich ändere meine Hauptabfragen mit der Funktion modify_main_query($query), die festlegt, auf welche Seite der Benutzer über die if/else-Anweisung zugreift, und ändere die Abfrage dann entsprechend. Ich füge diese Funktion mit diesem Haken hinzu:

Der Haken der Hauptfunktion

add_action('pre_get_posts', 'modify_main_query')

Eine meiner if-Klauseln (für eine bestimmte Seite) innerhalb von modify_main_query($query) ruft eine kleine Funktion namens get_exclusion_IDs_for_cats_by_name($cat_names) auf.

dies ist eine vereinfachte Version:

Die Main Hook-Funktion hinzugefügt

 function modify_main_query ($ query) {
 
 if (is_front_page ()) {
 
 [... Sachen machen] 
 
} 
 
 elseif (is_archive ()) {
 
 $ cat_names = array ('Apple', 'orange'); 
 get_exclusion_IDs_for_cats_by_name ($ cat_names); // kleine Funktion Ich möchte 
} 
 
 else {NULL;} 
 
 endif; 
 

Meine Frage

Wie kann ich diese kleine Funktion get_exclusion_IDs_for_cats_by_name($cat_names), die von meiner Action-Hook-Funktion modify_main_query($query) aufgerufen wird, ordnungsgemäß zu functions.php hinzufügen? Werfe ich die kleine Funktion einfach in die Datei functions.php oder benötige ich einen separaten Hook für die Minifunktion? Es funktioniert, wenn ich die aufgerufene Funktion nur separat ohne einen Haken hinzufüge, aber ich wollte überprüfen, ob ich es auf die bevorzugte Weise mache.

Vielen Dank!

1

Das sieht gut aus. Wenn wir annehmen, dass get_exclusion_IDs_for_cats_by_name($cat_names); richtig funktioniert, dann machen Sie es richtig.

Ihre Frage könnte folgendermaßen umformuliert werden:

Kann ich andere Funktionen in den benutzerdefinierten Aktionen aufrufen?

Und die Antwort ist ja . Das Einzige, worauf Sie achten müssen, ist, dass Ihre andere Funktion dort verfügbar ist , wo Sie sie aufrufen.

3
prosti

Wenn Sie kein eigenes Design verwenden, wird normalerweise empfohlen, ein untergeordnetes Design zu erstellen und dann Ihre eindeutigen Funktionen in die Datei functions.php des untergeordneten Designs einzufügen.

Auf diese Weise werden Ihre Funktionen bei einem Update des von Ihnen verwendeten Themas nicht überschrieben. Es ist immer eine gute Idee, niemals Änderungen an Kerndateien oder an Themen vorzunehmen, die Sie verwenden.

Wenn Sie ein eigenes Thema erstellen, fügen Sie bei Bedarf Funktionen hinzu.

0
Rick Hellewell