Soms kan een kleine helper functie je veel tijd en kopzorgen besparen. Voila, hier heb je er eentje, gratis en voor niks.
Rewrite rules kunnen voor beginnende maar ook voor ervaren WordPress ontwikkelaars knap ingewikkeld en verwarrend zijn. Via onderstaande helper functie get_current_rewrite_rule()
genaamd verklapt WordPress je de rewrite rule die op je huidige pagina van toepassing is.
Hoe kan ik deze gebruiken?
De get_current_rewrite_rule()
maakt gebruik van de globale $wp_rewrite
en $wp
variabelen.
Via een WordPress thema
De globale $wp
variable is bij een WordPress thema beschikbaar nadat de setup_theme()
action hook is uitgevoerd. Dit houdt in dat je ten vroegste kan inhaken via de after_setup_theme()
hook.
Via een WordPress plugin
De globale $wp
variabele is bij een WordPress plugin beschikbaar nadat de plugins_loaded()
hook is uitgevoerd. Deze hook wordt uitgevoerd nadat alle actieve plugins zijn ingeladen en geïnitialiseerd.
function get_current_rewrite_rule()
{
global $wp_rewrite, $wp;
// Get the current URL
$current_url = home_url(add_query_arg(array(),$wp->request));
// Get the rewrite rules
$rewrite_rules = $wp_rewrite->rewrite_rules();
// Match the current URL against each rule
foreach ($rewrite_rules as $rule => $rewrite) {
if (preg_match('#'.$rule.'#', $current_url, $matches)) {
return $rewrite;
}
}
return false;
}
// When used in a theme
add_action('after_setup_theme', function() {
if(is_admin()) {
return;
}
get_current_rewrite_rule();
});
// When used in a plugin
add_action('plugins_loaded', function() {
if(is_admin()) {
return;
}
get_current_rewrite_rule();
});
PHPVoila, een leuke extra helper functie die je kan toevoegen aan je WordPress helper stack.
Heb je nood aan nog meer rewrite rule informatie?
Deze kleine helper functie toont enkel de rewrite rule van je huidige WordPress pagina. Maar wil je graag nog meer informatie over de gebruikte rewrite rules wordt de Query Monitor plugin jouw beste WordPress development vriend. Naast uitgebreide informatie over rewrite rules zit deze bomvol broodnodige development informatie zoals database queries, logs, requests, scripts, styles, API calls, transients, capability checks, enzovoort.