qv . '=1', 'top' ); } /** * Add custom query var to those permitted, so it can be detected at `parse_request` */ public function filter_query_vars( $qv ) { $qv[] = $this->qv; return $qv; } /** * Catch this plugin's requests and issue redirects, otherwise WP will serve content at duplicate URLs */ public function action_parse_request( $request ) { if ( isset( $request->query_vars[ $this->qv ] ) ) { $home_url = user_trailingslashit( home_url() ); $dest = get_permalink( $request->query_vars['p'] ); if ( $dest ) { $dest = wp_validate_redirect( $dest, $home_url ); $status = 301; } else { $dest = $home_url; $status = 302; } wp_redirect( $dest, $status ); exit; } } } ETH_Simple_Shortlinks::get_instance();