Changeset 3229
- Timestamp:
- 11/29/2005 01:43:32 AM (19 years ago)
- Location:
- trunk/wp-includes
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-includes/classes.php
r3226 r3229 258 258 $whichcat = ''; 259 259 $whichauthor = ''; 260 $whichpage = ''; 260 261 $result = ''; 261 262 $where = ''; … … 351 352 $where .= " AND post_name = '" . $q['name'] . "'"; 352 353 } else if ('' != $q['pagename']) { 353 $q['pagename'] = sanitize_title(basename(str_replace('%2F', '/', urlencode($q['pagename'])))); 354 $q['pagename'] = str_replace('%2F', '/', urlencode(urldecode($q['pagename']))); 355 $page_paths = '/' . trim($q['pagename'], '/'); 356 $q['pagename'] = sanitize_title(basename($page_paths)); 354 357 $q['name'] = $q['pagename']; 355 $where .= " AND post_name = '" . $q['pagename'] . "'"; 358 $page_paths = explode('/', $page_paths); 359 foreach($page_paths as $pathdir) 360 $page_path .= ($pathdir!=''?'/':'') . sanitize_title($pathdir); 361 362 $all_page_ids = get_all_page_ids(); 363 $reqpage = 0; 364 foreach ( $all_page_ids as $page_id ) { 365 $page = get_page($page_id); 366 if ( $page->fullpath == $page_path ) { 367 $reqpage = $page_id; 368 break; 369 } 370 } 371 372 $where .= " AND (ID = '$reqpage')"; 356 373 } elseif ('' != $q['attachment']) { 357 374 $q['attachment'] = sanitize_title($q['attachment']); … … 512 529 $whichauthor .= ' AND (post_author = '.intval($q['author']).')'; 513 530 } 514 531 515 532 $where .= $search.$whichcat.$whichauthor; 516 533 … … 1467 1484 } 1468 1485 1469 if (preg_match("!^$match!", $request_match, $matches)) { 1486 if (preg_match("!^$match!", $request_match, $matches) || 1487 preg_match("!^$match!", urldecode($request_match), $matches)) { 1470 1488 // Got a match. 1471 1489 $this->matched_rule = $match; -
trunk/wp-includes/functions.php
r3220 r3229 586 586 } 587 587 588 function set_page_path($page) { 589 $page->fullpath = '/' . $page->post_name; 590 $path = $page->fullpath; 591 $curpage = $page; 592 while ($curpage->post_parent != 0) { 593 $curpage = get_page($curpage->post_parent); 594 $path = '/' . $curpage->post_name . $path; 595 } 596 597 $page->fullpath = $path; 598 599 return $page; 600 } 601 588 602 // Retrieves page data given a page ID or page object. 589 603 // Handles page caching. … … 613 627 } 614 628 } 629 630 if (!isset($_page->fullpath)) { 631 $_page = set_page_path($_page); 632 wp_cache_replace($_page->cat_ID, $_page, 'pages'); 633 } 615 634 616 635 if ( $output == OBJECT ) { … … 719 738 720 739 return $cat_ids; 740 } 741 742 function get_all_page_ids() { 743 global $wpdb; 744 745 if ( ! $page_ids = wp_cache_get('all_page_ids', 'posts') ) { 746 $page_ids = $wpdb->get_col("SELECT ID FROM $wpdb->posts WHERE post_status='static'"); 747 wp_cache_add('all_page_ids', $page_ids, 'pages'); 748 } 749 750 return $page_ids; 721 751 } 722 752 -
trunk/wp-includes/template-functions-post.php
r3217 r3229 284 284 } 285 285 } 286 287 286 return $page_list; 288 287 }
Note: See TracChangeset
for help on using the changeset viewer.