My plugin makes an interactive image and I want to share it via iframe. Is there a right way to implement a special page with unique url for a wordpress plugin. At the moment I use a page templates, but it's not so friendly. I want something like www.site.com/myplugin/id=123¶m=123 - shows me a special page that renders my plugin in frontend.
You can hook into the parse_request
action before WordPress renders any page like so:
function so_46014733( $query ) {
if (
isset( $_GET['id'] )
&& isset( $_GET['param'] ) &&
'123' === $_GET['id'] &&
'123' === $_GET['param']
) {
include_once 'my_custom_page.html';
exit;
}
return $query;
}
add_action( 'parse_request', 'so_46014733' );
A few things to note:
$query
if the id
or param
are empty (almost no performance impact on this check).id
and param
match your keys.If you plan to use the $_GET
variables for anything, be sure to sanitize them first like so:
$id = absint( wp_unslash( $_GET['id'] ) );