Hooks & Filter
Diese Referenz richtet sich an Entwickler, die ReadNinja programmatisch erweitern möchten. Alle Hooks und Filter sind stabil und in der Free- und Pro-Version verfügbar.
PHP-Filter
| Filter | Parameter | Beschreibung |
|---|---|---|
rpb_is_pro | bool | Gibt true zurück, wenn die Pro-Lizenz aktiv ist |
rpb_should_display | bool $display, int $post_id | Steuert programmatisch, ob die Leiste gerendert wird |
rpb_bar_config | array $config | Ändert das JS-Konfigurations-Array, bevor es auf der Seite ausgegeben wird |
rpb_settings_tabs | array $tabs | Fügt Tabs auf der Einstellungsseite hinzu oder entfernt sie |
rpb_is_pro
Ermöglicht anderen Plugins zu prüfen, ob Pro aktiv ist, ohne Klassennamen oder Konstanten fest zu kodieren.
add_action( 'init', function () {
if ( apply_filters( 'rpb_is_pro', false ) ) {
// Nur Pro-Logik hier
}
} );
rpb_should_display
Wird ausgeführt, kurz bevor ReadNinja entscheidet, ob die Leiste bei der aktuellen Anfrage gerendert wird. Geben Sie false zurück, um sie auszublenden, true, um sie zu erzwingen. Verwenden Sie es, um die Leiste auf sehr kurzen Artikeln auszublenden:
add_filter( 'rpb_should_display', function ( $display, $post_id ) {
$content = get_post_field( 'post_content', $post_id );
$word_count = str_word_count( wp_strip_all_tags( $content ) );
if ( $word_count < 300 ) {
return false;
}
return $display;
}, 10, 2 );
rpb_bar_config
Gibt Ihnen das vollständige JS-Konfigurations-Array, kurz bevor es an das Frontend übertragen wird. Verwenden Sie es, um benutzerdefinierte Werte einzufügen, Farben basierend auf Artikel-Meta zu ersetzen oder zusätzliche Daten für Ihre eigenen Scripts hinzuzufügen.
add_filter( 'rpb_bar_config', function ( $config ) {
if ( is_singular( 'podcast' ) ) {
$config['color'] = '#ff6b35';
$config['height'] = 6;
}
return $config;
} );
rpb_settings_tabs
Fügt einen benutzerdefinierten Tab zur Einstellungsseite hinzu. Kombinieren Sie es mit der Aktion rpb_render_tab_{tab}, um es mit Inhalt zu füllen.
add_filter( 'rpb_settings_tabs', function ( $tabs ) {
$tabs['custom'] = __( 'Benutzerdefiniert', 'my-plugin' );
return $tabs;
} );
PHP-Aktionen
| Aktion | Parameter | Beschreibung |
|---|---|---|
rpb_after_bar_render | int $post_id | Wird nach der Ausgabe des Leisten-HTMLs ausgelöst |
rpb_render_tab_{tab} | — | Injiziert Inhalt in einen beliebigen Einstellungs-Tab |
Beispiel — ein zusätzliches <div> direkt nach der Fortschrittsleiste auf einzelnen Artikeln hinzufügen:
add_action( 'rpb_after_bar_render', function ( $post_id ) {
echo '<div class="my-custom-ribbon" data-post="' . esc_attr( $post_id ) . '"></div>';
} );
Beispiel — den Inhalt des oben registrierten benutzerdefinierten Tabs ausfüllen:
add_action( 'rpb_render_tab_custom', function () {
echo '<h2>Mein benutzerdefinierter Tab</h2>';
echo '<p>Beliebiger Einstellungsinhalt geht hier hin.</p>';
} );
Browser-Events
ReadNinja sendet ein einzelnes DOM-Event, das Sie auf der Frontend-Seite abhören können.
| Event | Ziel | Detail |
|---|---|---|
rpb:threshold-reached | document | { percent: number } |
Dieses Event wird einmal pro Seitenaufruf ausgelöst, genau wenn der Leser den konfigurierten Schwellenwert überschreitet (Pro-Funktion — siehe Schwellenwert-Auslöser).
document.addEventListener('rpb:threshold-reached', (e) => {
console.log('Leser hat', e.detail.percent, '% erreicht')
// Popup anzeigen, Analytics-Event senden, usw.
})