I got a little piece of code here, but it should/could probably be improved.
- Create new
query_vars - Create new rewrite rule
- Redirect to specific template which then handles your parameters
Create new query vars
function register_gallery_query_vars($vars) {
$vars[] = 'gallery_id';
$vars[] = 'image_id';
return $vars;
}
add_filter('query_vars', 'register_gallery_query_vars');
Add rewrite rule
function custom_rewrite_gallery() {
add_rewrite_rule('^gallery/([0-9]+)/([0-9]+)/?', 'index.php?gallery=$matches[1]&image=$matches[2]', 'top');
}
// Change this to run ONLY on plugin activation
// Also have in mind that you need to flush rewrite rules if you change them
add_action('init', 'custom_rewrite_events');
Redirect to template
function gallery_template_redirection($template)
{
global $wp_query;
if(isset($wp_query->query_vars['gallery'])) { return dirname(__FILE__).'/gallery.php'; }
else return $template;
}
add_filter('template_include', 'gallery_template_redirection', 1, 1);
Your gallery.php can then use get_query_var() to read the values and work on with them.