Ticket #19744: url-postid-with-post-type.diff
File url-postid-with-post-type.diff, 1.3 KB (added by , 8 years ago) |
---|
-
wp-includes/rewrite.php
292 292 293 293 // Check to see if we are using rewrite rules 294 294 $rewrite = $wp_rewrite->wp_rewrite_rules(); 295 295 296 296 // Not using rewrite rules, and 'p=N' and 'page_id=N' methods failed, so we're out of options 297 297 if ( empty($rewrite) ) 298 298 return 0; … … 332 332 333 333 $request = $url; 334 334 335 $post_type_query_vars = array(); 336 foreach ( $GLOBALS['wp_post_types'] as $post_type => $t ) 337 if ( $t->query_var ) 338 $post_type_query_vars[$t->query_var] = $post_type; 339 335 340 // Look for matches. 336 341 $request_match = $request; 337 342 foreach ( (array)$rewrite as $match => $query) { … … 361 366 parse_str($query, $query_vars); 362 367 $query = array(); 363 368 foreach ( (array) $query_vars as $key => $value ) { 364 if ( in_array($key, $wp->public_query_vars) ) 369 if ( in_array($key, $wp->public_query_vars) ) { 365 370 $query[$key] = $value; 371 if ( isset( $post_type_query_vars[$key] ) ) { 372 $query['post_type'] = $post_type_query_vars[$key]; 373 $query['name'] = $value; 374 } 375 } 366 376 } 367 377 368 378 // Do the query 369 379 $query = new WP_Query($query); 370 380 if ( !empty($query->posts) && $query->is_singular )