Hooks in OBS nutzen (Filter und Actions)

Hooks sind Filter und Actions, mit denen sich OBS-Core anpassen lässt, ohne den Originalcode zu ändern. Dieser Beitrag zeigt das Grundmuster und die wichtigsten OBS-Filter für Navigation und Produkt-Blöcke.

Was Hooks sind

Hooks sind Filter oder Actions, mit denen sich Code vor der Ausgabe oder Weiterverarbeitung verändern lässt. Der Vorteil: Anpassungen greifen ohne Änderung am Originalcode und werden von Updates nicht überschrieben. Eigene Hooks gehören in die functions.php eines Child-Themes.

Grundmuster

// Filter
function your_function_name( $value ) {
 // TODO: eigenen Inhalt einsetzen
 return $value;
}
add_filter( 'hook_name', 'your_function_name', 10, 1 );

// Action
function your_action_name {
 // TODO: eigenen Code ausführen
}
add_action( 'hook_name', 'your_action_name', 10, 1 );

Warenkorb-Symbol im Menü

Der Filter obs_navigation_menu_cart_item verändert die Darstellung des Warenkorb-Symbols im Menü, wenn dieses als letzter Menüpunkt eingebunden ist. Er läuft, nachdem das Standarddesign erstellt wurde und bevor der Menüpunkt ausgegeben wird.

add_filter( 'obs_navigation_menu_cart_item', 'custom_menu_cart_item', 10, 3 );
function custom_menu_cart_item( $cart_menu_item, $items, $args ) {
 // TODO: $cart_menu_item gestalten
 return $cart_menu_item;
}

Produkt-Blöcke „Kaufen“ und „Breadcrumb“

Für die Produktseite gibt es Filter, die vor bzw. nach der Erstellung der HTML-Darstellung greifen:

  • obs_product_before_replace_buy / obs_product_after_replace_buy – der Kaufen-Block
  • (Warenkorb-Button)

  • obs_product_before_replace_breadcrumb / obs_product_after_replace_breadcrumb – der
  • Breadcrumb-Block

Ein before-Filter kann entweder die Parameter des Standard-Designs verändern (dazu null zurückgeben) oder die Darstellung komplett selbst erzeugen (die Darstellung als String zurückgeben):

add_filter( 'obs_product_before_replace_buy', 'custom_buy_design', 10, 2 );
function custom_buy_design( $html_buy, $explore_path ) {
 // TODO: $html_buy erzeugen oder $explore_path anpassen
 return $html_buy;
}

WEITERLESEN

Verwandte Themen

Strukturierte Daten (schema.org) anpassen

SEO-Titel, -Beschreibung und Open-Graph-Daten anpassen

Eigene Block-Templates erstellen