Wie kann ich die Funktion aber aufrufen, nur wenn auf ein Bild oder einen Text geklickt wird (Link)?
Du musst Dir darüber klar werden, was auf dem Server und was im Browser passiert. Deine Funktion baut auf dem Server irgendwelche Ausgaben in eine Antwort ein, die der Browser erhält.
Entweder legst Du eine explizite Seite mit einem expliziten Template an in welcher oder welchem Deine Funktion dann aufgerufen wird oder Du rufst die Funktion bei jedem Abruf einer oder bestimmter Ressourcen (Seiten) auf und versteckst den Inhalt bis zum Klick mit CSS. Das Anzeigen/Verstecken kann dann wieder mit JS und/oder CSS gesteuert werden. Oder Deine Funktion prüft den Kontext (z.B. aufgerufene URL) selbst und gibt je nach aufgerufener URL etwas, etwas anderes oder nichts zurück.