Ein Blog über Code, Hardware und Co

Kurz notiert

BP Nouveau Hooks: How to use

Oder: Wie du die BuddyPress Nouveau Template Hooks verwendest

Wer mit WordPress und BuddyPress arbeitet, der wird die Verwendung von Actions und Filtern (aka Hooks) lieben.
In BuddyPress gibt es BP Nouveau Template Hooks, die quasi generisch sind und sich etwas von der Verwendung klassischer Hooks unterschieden.

Die bp_nouveau_hook()-Funktion

Wir kennen das klassische Nutzen von Hooks mittels add_action() und apply_filter(). Mehr dazu auch hier.

BuddyPress nutzt nun eine etwas angepasste Funktion, die generische Hooks erstellt und verwendbar macht.

bp_nouveau_hook( array $pieces = array() )

Diese Funktionalität ist in mehreren Bereichen als eigenständige Funktion verfügbar:

  • bp_nouveau_group_hook( )
  • u.v.m.

Was genau macht die Funktion jetzt?

Im Prinzip macht die Funktion nichts anderes, als aus den im array $pieces übergebenen Parametern (Strings) eine generische Hook zu erstellen.

Nehmen wir die Adaption bp_nouveau_group_hook( ), die die Funktion verdeutlicht:

bp_nouveau_group_hook( string $when = '', string $suffix = '' )

Die Parameter erklärt:

ParameterDatentypErklärung
$whenstring, kann “before” oder “after” annehmenBeschreibt, WANN der Hook ausgeführt wird. Die “before” Hooks werden in der Regel vor der Content-Ausgabe auf der jeweiligen Seite ausgeführt, die “after”-Hooks danach.
$suffixstringDer Suffix ist der Name der Hook, er kann beliebig vergeben werden.
Tabelle 1: Erklärung der Parameter der bp_nouveau_group_hook funktion.

Eine Anwendung könnte dann wie folgt aussehen:

bp_nouveau_group_hook( 'before', 'header_meta' )

Ein Beispiel in der Praxis

Angenommen wir möchten dem Nutzer in BuddyPress auf der Seite, wo er sein Profil bearbeitet eine Zusatzinfo einblenden. Dafür stellt BuddyPress nun eine Hook zur Verfügung, die generisch erstellt wird.

Nutzung der Hooks ist wie eh und je

Lange Rede, kurzer Sinn, das Verständnis der Erstellung dieser Hooks ist generisch, die Benutzung ist jedoch wie eh und je. Man muss lediglich auf den generisch erstellen Hook zugreifen, beispielsweise mit:

add_action('bp_after_profile_edit_content', 'print_profile_edit_description');

Erläuterung des generierten Hooks:

Piece / ParameterErklärung
bpPrefix: Wird automatisch von BuddyPress gesetzt. Signalisiert, dass es sich um einen BuddyPress-Hook handelt
afterWird die Hook vor (‘before’) oder nach (‘after’) dem eigentlichen Content der Seite ausgeführt?
profile_edit_descriptionDas suffix: Der Name der Hook.
print_profile_edit_description (Parameter)Hier handelt es sich um keine generisch erstelltes Piece, sondern um den Parameter, der den Namen der Funktion enthält, die ausgeführt werden soll.
Tabelle 2:

Die Funktion, die dann zusätzlichen Content ausgibt, könnte wie folgt aussehen:

function print_profile_edit_description(){
        echo "<hr><br>";
        echo "Meine Beschreibung.";
}

Viel Spaß!

Schreibe eine Antwort