Call a function when user access the specific URL structure in WordPress
add_action( 'template_redirect', 'my_plugin_template_redirect_intercept' );
function my_plugin_template_redirect_intercept() {
global $wp_query;
if( $wp_query->get('my-plugin') ) {
$someVar = $wp_query->get('some-var');
// do stuff
exit;
}
}
function my_plugin_add_rewrite_rules() {
$rule = '^/blog/example/some-var/([0-9]+)/?$';
add_rewrite_rule(
$rule,
'index.php?my-plugin=1&some-var=$matches[1]',
'top' );
}
add_action( 'init', 'my_plugin_rewrites_init' );
function my_plugin_rewrites_init() {
add_rewrite_tag( '%my-plugin%', '([0-9]+)' );
add_rewrite_tag( '%post-id%', '([0-9]+)' );
my_plugin_add_rewrite_rules();
}
register_activation_hook( __FILE__, 'my_plugin_activate' );
function my_plugin_activate() {
global $wp_rewrite;
my_plugin_add_rewrite_rules();
$wp_rewrite->flush_rules();
}
http://www.mendoweb.be/blog/wordpress-custom-rewrite-url-to-call-plugin-function/