Hooks
SleekRank provides PHP hooks and filters that allow developers to customize and extend its behavior.
Filters
sleekRank/data/item
Filter a resolved data item before it is used for replacements. Receives the item data array and page group object.
add_filter('sleekRank/data/item', function ($item, $pageGroup) {
// Modify data before replacements are applied
$item['name'] = strtoupper($item['name']);
return $item;
}, 10, 2);
Copy
You can also target a specific page group by slug:
add_filter('sleekRank/data/item/city-pages', function ($item) {
// Only applies to the "city-pages" page group
$item['description'] = wp_trim_words($item['description'], 30);
return $item;
});
Copy
sleekRank/replacement/value
Filter the value produced by any replacement before it is injected into the HTML.
add_filter('sleekRank/replacement/value', function ($value, $mapping, $data) {
// Modify any replacement value
return $value;
}, 10, 3);
Copy
You can also filter by replacement type:
add_filter('sleekRank/replacement/value/tag', function ($value, $mapping, $data) {
// Only applies to tag replacements
return $value;
}, 10, 3);
Copy
sleekRank/replacements/before
Filter the HTML content before the replacement engine processes it.
add_filter('sleekRank/replacements/before', function ($html, $data, $mappings) {
// Pre-process HTML before replacements
return $html;
}, 10, 3);
Copy
sleekRank/replacements/after
Filter the HTML content after all replacements have been applied.
add_filter('sleekRank/replacements/after', function ($html, $data, $mappings) {
// Post-process HTML after all replacements
return $html;
}, 10, 3);
Copy
sleekRank/output/before & sleekRank/output/after
Filter the final page output before and after the output buffer is processed.
add_filter('sleekRank/output/after', function ($html) {
// Add a custom banner to all generated pages
$banner = '<div class="generated-page-banner">Auto-generated</div>';
return str_replace('<body', $banner . '<body', $html);
});
Copy
Actions
sleekRank/data/resolved
Fires after data has been successfully resolved for a page group item.
add_action('sleekRank/data/resolved', function ($data, $pageGroup) {
// Log or track page resolution
error_log("SleekRank resolved: " . $data['slug']);
}, 10, 2);
Copy
sleekRank/register/dataSources
Register custom data source types.
add_action('sleekRank/register/dataSources', function ($registry) {
$registry->register('my_custom_source', MyCustomDataSource::class);
});
Copy
sleekRank/register/replacements
Register custom replacement types.
add_action('sleekRank/register/replacements', function ($engine) {
$engine->register('custom', MyCustomReplacement::class);
});
Copy
sleekRank/register/sitemapIntegrations
Register custom sitemap integrations.
add_action('sleekRank/register/sitemapIntegrations', function ($registry) {
$registry->register(MyCustomSitemapIntegration::class);
});
Copy
Lifecycle actions
These actions fire during SleekRank's initialization and can be used for logging or extending behavior:
sleekRank/dataSource/registered— Fires when a data source type is registeredsleekRank/pageGroup/registered— Fires when a page group is registered during initsleekRank/rewrites/registered— Fires after all rewrite rules have been registeredsleekRank/activated— Fires on plugin activationsleekRank/deactivated— Fires on plugin deactivation