$v ) { $rules[$k] = str_replace( 'pagename=', 'post_or_page=', $v ); } return $rules; } public function post_rewrite_rules( $rules ) { global $wp_rewrite; if ( $wp_rewrite->use_verbose_page_rules ) { $wp_rewrite->use_verbose_page_rules = false; add_filter( 'page_rewrite_rules', array( $this, 'page_rewrite_rules' ) ); foreach ( $rules as $k => $v ) { $rules[$k] = str_replace( 'name=', 'post_or_page=', $v ); } } return $rules; } public function query_vars( $vars ) { $vars[] = 'post_or_page'; return $vars; } public function request( $request ) { if ( !isset( $request['post_or_page'] ) ) return $request; global $wpdb; $post_or_page = $wpdb->get_var( $wpdb->prepare( "SELECT post_type FROM $wpdb->posts WHERE post_name = %s AND post_type IN( 'post', 'page') LIMIT 1;", $request['post_or_page'] ) ); if ( 'page' == $post_or_page ) $request['pagename'] = $request['post_or_page']; else $request['name'] = $request['post_or_page']; unset( $request['post_or_page'] ); return $request; } } new CWS_Non_Verbose_Page_Rules;