Changeset 6351
- Timestamp:
- 12/04/2007 12:19:10 AM (16 years ago)
- Location:
- trunk/wp-includes
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-includes/post.php
r6337 r6351 1169 1169 } 1170 1170 1171 function generate_page_uri_index() {1172 global $wpdb;1173 1174 //get pages in order of hierarchy, i.e. children after parents1175 $posts = get_page_hierarchy($wpdb->get_results("SELECT ID, post_name, post_parent FROM $wpdb->posts WHERE post_type = 'page'"));1176 //now reverse it, because we need parents after children for rewrite rules to work properly1177 $posts = array_reverse($posts, true);1178 1179 $page_uris = array();1180 $page_attachment_uris = array();1181 1182 if ($posts) {1183 1184 foreach ($posts as $id => $post) {1185 1186 // URL => page name1187 $uri = get_page_uri($id);1188 $attachments = $wpdb->get_results( $wpdb->prepare( "SELECT ID, post_name, post_parent FROM $wpdb->posts WHERE post_type = 'attachment' AND post_parent = %d", $id ));1189 if ( $attachments ) {1190 foreach ( $attachments as $attachment ) {1191 $attach_uri = get_page_uri($attachment->ID);1192 $page_attachment_uris[$attach_uri] = $attachment->ID;1193 }1194 }1195 1196 $page_uris[$uri] = $id;1197 }1198 1199 delete_option('page_uris');1200 update_option('page_uris', $page_uris);1201 1202 if ( $page_attachment_uris ) {1203 delete_option('page_attachment_uris');1204 update_option('page_attachment_uris', $page_attachment_uris);1205 }1206 }1207 }1208 1209 1171 // 1210 1172 // Attachment functions -
trunk/wp-includes/rewrite.php
r5959 r6351 186 186 var $endpoints; 187 187 var $use_verbose_rules = false; 188 var $use_verbose_page_rules = true; 188 189 var $rewritecode = 189 190 array( … … 278 279 } 279 280 281 function page_uri_index() { 282 global $wpdb; 283 284 //get pages in order of hierarchy, i.e. children after parents 285 $posts = get_page_hierarchy($wpdb->get_results("SELECT ID, post_name, post_parent FROM $wpdb->posts WHERE post_type = 'page'")); 286 //now reverse it, because we need parents after children for rewrite rules to work properly 287 $posts = array_reverse($posts, true); 288 289 $page_uris = array(); 290 $page_attachment_uris = array(); 291 292 if ( !$posts ) 293 return array( array(), array() ); 294 295 296 foreach ($posts as $id => $post) { 297 // URL => page name 298 $uri = get_page_uri($id); 299 $attachments = $wpdb->get_results( $wpdb->prepare( "SELECT ID, post_name, post_parent FROM $wpdb->posts WHERE post_type = 'attachment' AND post_parent = %d", $id )); 300 if ( $attachments ) { 301 foreach ( $attachments as $attachment ) { 302 $attach_uri = get_page_uri($attachment->ID); 303 $page_attachment_uris[$attach_uri] = $attachment->ID; 304 } 305 } 306 307 $page_uris[$uri] = $id; 308 } 309 310 return array( $page_uris, $page_attachment_uris ); 311 } 312 280 313 function page_rewrite_rules() { 281 $uris = get_option('page_uris'); 282 $attachment_uris = get_option('page_attachment_uris'); 314 global $wpdb; 283 315 284 316 $rewrite_rules = array(); 285 317 $page_structure = $this->get_page_permastruct(); 318 319 if ( ! $this->use_verbose_page_rules ) { 320 $this->add_rewrite_tag('%pagename%', "(.+)", 'pagename='); 321 $rewrite_rules = array_merge($rewrite_rules, $this->generate_rewrite_rules($page_structure, EP_PAGES)); 322 return $rewrite_rules; 323 } 324 325 $page_uris = $this->page_uri_index(); 326 $uris = $page_uris[0]; 327 $attachment_uris = $page_uris[1]; 328 329 286 330 if( is_array( $attachment_uris ) ) { 287 331 foreach ($attachment_uris as $uri => $pagename) { … … 786 830 787 831 // Put them together. 788 $this->rules = array_merge($this->extra_rules_top, $robots_rewrite, $default_feeds, $page_rewrite, $root_rewrite, $comments_rewrite, $search_rewrite, $category_rewrite, $tag_rewrite, $author_rewrite, $date_rewrite, $post_rewrite, $this->extra_rules); 832 if ( $this->use_verbose_page_rules ) 833 $this->rules = array_merge($this->extra_rules_top, $robots_rewrite, $default_feeds, $page_rewrite, $root_rewrite, $comments_rewrite, $search_rewrite, $category_rewrite, $tag_rewrite, $author_rewrite, $date_rewrite, $post_rewrite, $this->extra_rules); 834 else 835 $this->rules = array_merge($this->extra_rules_top, $robots_rewrite, $default_feeds, $root_rewrite, $comments_rewrite, $search_rewrite, $category_rewrite, $tag_rewrite, $author_rewrite, $date_rewrite, $post_rewrite, $page_rewrite, $this->extra_rules); 789 836 790 837 do_action_ref_array('generate_rewrite_rules', array(&$this)); … … 901 948 902 949 function flush_rules() { 903 generate_page_uri_index();904 950 delete_option('rewrite_rules'); 905 951 $this->wp_rewrite_rules();
Note: See TracChangeset
for help on using the changeset viewer.