Changeset 8793
- Timestamp:
- 09/01/2008 05:47:08 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-includes/rewrite.php
r8616 r8793 1 1 <?php 2 3 /* WP_Rewrite API 4 *******************************************************************************/ 5 6 //Add a straight rewrite rule 2 /** 3 * WordPress Rewrite API 4 * 5 * @package WordPress 6 * @subpackage Rewrite 7 */ 8 9 /** 10 * add_rewrite_rule() - Add a straight rewrite rule 11 * 12 * {@internal Missing Long Description}} 13 * 14 * @since 2.1.0 15 * 16 * @param unknown_type $regex 17 * @param unknown_type $redirect 18 * @param unknown_type $after 19 */ 7 20 function add_rewrite_rule($regex, $redirect, $after = 'bottom') { 8 21 global $wp_rewrite; … … 10 23 } 11 24 12 //Add a new tag (like %postname%) 13 //warning: you must call this on init or earlier, otherwise the query var addition stuff won't work 25 /** 26 * add_rewrite_tag() - Add a new tag (like %postname%) 27 * 28 * Warning: you must call this on init or earlier, otherwise 29 * the query var addition stuff won't work 30 * 31 * @since 2.1.0 32 * 33 * @param unknown_type $tagname 34 * @param unknown_type $regex 35 */ 14 36 function add_rewrite_tag($tagname, $regex) { 15 37 //validation … … 25 47 } 26 48 27 //Add a new feed type like /atom1/ 49 /** 50 * add_feed() - Add a new feed type like /atom1/ 51 * 52 * {@internal Missing Long Description}} 53 * 54 * @since 2.1.0 55 * 56 * @param unknown_type $feedname 57 * @param unknown_type $function 58 * @return unknown 59 */ 28 60 function add_feed($feedname, $function) { 29 61 global $wp_rewrite; … … 38 70 } 39 71 40 define('EP_PERMALINK', 1 ); 41 define('EP_ATTACHMENT', 2 ); 42 define('EP_DATE', 4 ); 43 define('EP_YEAR', 8 ); 44 define('EP_MONTH', 16 ); 45 define('EP_DAY', 32 ); 46 define('EP_ROOT', 64 ); 47 define('EP_COMMENTS', 128 ); 48 define('EP_SEARCH', 256 ); 49 define('EP_CATEGORIES', 512 ); 50 define('EP_TAGS', 1024 ); 51 define('EP_AUTHORS', 2048); 52 define('EP_PAGES', 4096); 72 /** 73 * {@internal Missing Description}} 74 * 75 * @since 2.1.0 76 */ 77 define('EP_PERMALINK', 1); 78 79 /** 80 * {@internal Missing Description}} 81 * 82 * @since 2.1.0 83 */ 84 define('EP_ATTACHMENT', 2); 85 86 /** 87 * {@internal Missing Description}} 88 * 89 * @since 2.1.0 90 */ 91 define('EP_DATE', 4); 92 93 /** 94 * {@internal Missing Description}} 95 * 96 * @since 2.1.0 97 */ 98 define('EP_YEAR', 8); 99 100 /** 101 * {@internal Missing Description}} 102 * 103 * @since 2.1.0 104 */ 105 define('EP_MONTH', 16); 106 107 /** 108 * {@internal Missing Description}} 109 * 110 * @since 2.1.0 111 */ 112 define('EP_DAY', 32); 113 114 /** 115 * {@internal Missing Description}} 116 * 117 * @since 2.1.0 118 */ 119 define('EP_ROOT', 64); 120 121 /** 122 * {@internal Missing Description}} 123 * 124 * @since 2.1.0 125 */ 126 define('EP_COMMENTS', 128); 127 128 /** 129 * {@internal Missing Description}} 130 * 131 * @since 2.1.0 132 */ 133 define('EP_SEARCH', 256); 134 135 /** 136 * {@internal Missing Description}} 137 * 138 * @since 2.1.0 139 */ 140 define('EP_CATEGORIES', 512); 141 142 /** 143 * {@internal Missing Description}} 144 * 145 * @since 2.3.0 146 */ 147 define('EP_TAGS', 1024); 148 149 /** 150 * {@internal Missing Description}} 151 * 152 * @since 2.1.0 153 */ 154 define('EP_AUTHORS', 2048); 155 156 /** 157 * {@internal Missing Description}} 158 * 159 * @since 2.1.0 160 */ 161 define('EP_PAGES', 4096); 162 53 163 //pseudo-places 54 define('EP_NONE', 0 ); 55 define('EP_ALL', 8191); 56 57 //and an endpoint, like /trackback/ 164 /** 165 * {@internal Missing Description}} 166 * 167 * @since 2.1.0 168 */ 169 define('EP_NONE', 0); 170 171 /** 172 * {@internal Missing Description}} 173 * 174 * @since 2.1.0 175 */ 176 define('EP_ALL', 8191); 177 178 /** 179 * add_rewrite_endpoint() - Add an endpoint, like /trackback/ 180 * 181 * {@internal Missing Long Description}} 182 * 183 * @since 2.1.0 184 * 185 * @param unknown_type $name 186 * @param unknown_type $places 187 */ 58 188 function add_rewrite_endpoint($name, $places) { 59 189 global $wp_rewrite; … … 77 207 // examine a url (supposedly from this blog) and try to 78 208 // determine the post ID it represents. 209 /** 210 * url_to_postid() - Examine a url and try to determine the post ID it represents 211 * 212 * {@internal Missing Long Description}} 213 * 214 * Checks are supposedly from the hosted site blog. 215 * 216 * @since 1.0.0 217 * 218 * @param unknown_type $url 219 * @return unknown 220 */ 79 221 function url_to_postid($url) { 80 222 global $wp_rewrite; … … 173 315 } 174 316 175 /* WP_Rewrite class 176 *******************************************************************************/ 177 317 /** 318 * {@internal Missing Short Description}} 319 * 320 * {@internal Missing Long Description}} 321 * 322 * @since 1.5.0 323 */ 178 324 class WP_Rewrite { 325 /** 326 * {@internal Missing Description}} 327 * 328 * @since 1.5.0 329 * @access private 330 * @var unknown_type 331 */ 179 332 var $permalink_structure; 333 334 /** 335 * {@internal Missing Description}} 336 * 337 * @since 2.2.0 338 * @access private 339 * @var bool 340 */ 180 341 var $use_trailing_slashes; 342 343 /** 344 * {@internal Missing Description}} 345 * 346 * @since 1.5.0 347 * @access private 348 * @var unknown_type 349 */ 181 350 var $category_base; 351 352 /** 353 * {@internal Missing Description}} 354 * 355 * @since 2.3.0 356 * @access private 357 * @var unknown_type 358 */ 182 359 var $tag_base; 360 361 /** 362 * {@internal Missing Description}} 363 * 364 * @since 1.5.0 365 * @access private 366 * @var unknown_type 367 */ 183 368 var $category_structure; 369 370 /** 371 * {@internal Missing Description}} 372 * 373 * @since 2.3.0 374 * @access private 375 * @var unknown_type 376 */ 184 377 var $tag_structure; 378 379 /** 380 * {@internal Missing Description}} 381 * 382 * @since 1.5.0 383 * @access private 384 * @var string 385 */ 185 386 var $author_base = 'author'; 387 388 /** 389 * {@internal Missing Description}} 390 * 391 * @since 1.5.0 392 * @access private 393 * @var unknown_type 394 */ 186 395 var $author_structure; 396 397 /** 398 * {@internal Missing Description}} 399 * 400 * @since 1.5.0 401 * @access private 402 * @var unknown_type 403 */ 187 404 var $date_structure; 405 406 /** 407 * {@internal Missing Description}} 408 * 409 * @since 1.5.0 410 * @access private 411 * @var unknown_type 412 */ 188 413 var $page_structure; 414 415 /** 416 * {@internal Missing Description}} 417 * 418 * @since 1.5.0 419 * @access private 420 * @var string 421 */ 189 422 var $search_base = 'search'; 423 424 /** 425 * {@internal Missing Description}} 426 * 427 * @since 1.5.0 428 * @access private 429 * @var unknown_type 430 */ 190 431 var $search_structure; 432 433 /** 434 * {@internal Missing Description}} 435 * 436 * @since 1.5.0 437 * @access private 438 * @var string 439 */ 191 440 var $comments_base = 'comments'; 441 442 /** 443 * {@internal Missing Description}} 444 * 445 * @since 1.5.0 446 * @access private 447 * @var string 448 */ 192 449 var $feed_base = 'feed'; 450 451 /** 452 * {@internal Missing Description}} 453 * 454 * @since 1.5.0 455 * @access private 456 * @var string 457 */ 193 458 var $comments_feed_structure; 459 460 /** 461 * {@internal Missing Description}} 462 * 463 * @since 1.5.0 464 * @access private 465 * @var string 466 */ 194 467 var $feed_structure; 468 469 /** 470 * {@internal Missing Description}} 471 * 472 * @since 1.5.0 473 * @access private 474 * @var unknown_type 475 */ 195 476 var $front; 477 478 /** 479 * {@internal Missing Description}} 480 * 481 * @since 1.5.0 482 * @access 483 * @var unknown_type 484 */ 196 485 var $root = ''; 486 487 /** 488 * {@internal Missing Description}} 489 * 490 * @since 1.5.0 491 * @access public 492 * @var string 493 */ 197 494 var $index = 'index.php'; 495 496 /** 497 * {@internal Missing Description}} 498 * 499 * @since 1.5.0 500 * @access private 501 * @var unknown_type 502 */ 198 503 var $matches = ''; 504 505 /** 506 * {@internal Missing Description}} 507 * 508 * @since 1.5.0 509 * @access private 510 * @var array 511 */ 199 512 var $rules; 200 var $extra_rules = array(); //those not generated by the class, see add_rewrite_rule() 201 var $extra_rules_top = array(); //those not generated by the class, see add_rewrite_rule() 202 var $non_wp_rules = array(); //rules that don't redirect to WP's index.php 513 514 /** 515 * {@internal Missing Description}} 516 * 517 * Those not generated by the class, see add_rewrite_rule() 518 * 519 * @since 2.1.0 520 * @access private 521 * @var array 522 */ 523 var $extra_rules = array(); // 524 525 /** 526 * {@internal Missing Description}} 527 * 528 * Those not generated by the class, see add_rewrite_rule() 529 * 530 * @since 2.3.0 531 * @access private 532 * @var array 533 */ 534 var $extra_rules_top = array(); // 535 536 /** 537 * Rules that don't redirect to WP's index.php 538 * 539 * @since 2.1.0 540 * @access private 541 * @var array 542 */ 543 var $non_wp_rules = array(); // 544 545 /** 546 * {@internal Missing Description}} 547 * 548 * @since 2.1.0 549 * @access private 550 * @var unknown_type 551 */ 203 552 var $extra_permastructs = array(); 204 553 var $endpoints; 554 555 /** 556 * {@internal Missing Description}} 557 * 558 * @since 2.0.0 559 * @access public 560 * @var bool 561 */ 205 562 var $use_verbose_rules = false; 563 564 /** 565 * {@internal Missing Description}} 566 * 567 * @since 2.5.0 568 * @access public 569 * @var bool 570 */ 206 571 var $use_verbose_page_rules = true; 572 573 /** 574 * {@internal Missing Description}} 575 * 576 * @since 1.5.0 577 * @access private 578 * @var array 579 */ 207 580 var $rewritecode = 208 581 array( … … 222 595 ); 223 596 597 /** 598 * {@internal Missing Description}} 599 * 600 * @since 1.5.0 601 * @access private 602 * @var array 603 */ 224 604 var $rewritereplace = 225 605 array( … … 239 619 ); 240 620 621 /** 622 * {@internal Missing Description}} 623 * 624 * @since 1.5.0 625 * @access private 626 * @var array 627 */ 241 628 var $queryreplace = 242 629 array ( … … 256 643 ); 257 644 645 /** 646 * {@internal Missing Description}} 647 * 648 * @since 1.5.0 649 * @access private 650 * @var array 651 */ 258 652 var $feeds = array ( 'feed', 'rdf', 'rss', 'rss2', 'atom' ); 259 653 654 /** 655 * {@internal Missing Short Description}} 656 * 657 * {@internal Missing Long Description}} 658 * 659 * @since 1.5.0 660 * @access public 661 * 662 * @return unknown 663 */ 260 664 function using_permalinks() { 261 665 if (empty($this->permalink_structure)) … … 265 669 } 266 670 671 /** 672 * {@internal Missing Short Description}} 673 * 674 * {@internal Missing Long Description}} 675 * 676 * @since 1.5.0 677 * @access public 678 * 679 * @return unknown 680 */ 267 681 function using_index_permalinks() { 268 682 if (empty($this->permalink_structure)) { … … 278 692 } 279 693 694 /** 695 * {@internal Missing Short Description}} 696 * 697 * {@internal Missing Long Description}} 698 * 699 * @since 1.5.0 700 * @access public 701 * 702 * @return unknown 703 */ 280 704 function using_mod_rewrite_permalinks() { 281 705 if ( $this->using_permalinks() && ! $this->using_index_permalinks()) … … 285 709 } 286 710 711 /** 712 * {@internal Missing Short Description}} 713 * 714 * {@internal Missing Long Description}} 715 * 716 * @since 1.5.0 717 * @access public 718 * 719 * @param unknown_type $number 720 * @return unknown 721 */ 287 722 function preg_index($number) { 288 723 $match_prefix = '$'; … … 297 732 } 298 733 734 /** 735 * {@internal Missing Short Description}} 736 * 737 * {@internal Missing Long Description}} 738 * 739 * @since 2.5.0 740 * @access public 741 * 742 * @return unknown 743 */ 299 744 function page_uri_index() { 300 745 global $wpdb; … … 329 774 } 330 775 776 /** 777 * {@internal Missing Short Description}} 778 * 779 * {@internal Missing Long Description}} 780 * 781 * @since 1.5.0 782 * @access public 783 * 784 * @return unknown 785 */ 331 786 function page_rewrite_rules() { 332 787 $rewrite_rules = array(); … … 360 815 } 361 816 817 /** 818 * {@internal Missing Short Description}} 819 * 820 * {@internal Missing Long Description}} 821 * 822 * @since 1.5.0 823 * @access public 824 * 825 * @return unknown 826 */ 362 827 function get_date_permastruct() { 363 828 if (isset($this->date_structure)) { … … 404 869 } 405 870 871 /** 872 * {@internal Missing Short Description}} 873 * 874 * {@internal Missing Long Description}} 875 * 876 * @since 1.5.0 877 * @access public 878 * 879 * @return unknown 880 */ 406 881 function get_year_permastruct() { 407 882 $structure = $this->get_date_permastruct($this->permalink_structure); … … 419 894 } 420 895 896 /** 897 * {@internal Missing Short Description}} 898 * 899 * {@internal Missing Long Description}} 900 * 901 * @since 1.5.0 902 * @access public 903 * 904 * @return unknown 905 */ 421 906 function get_month_permastruct() { 422 907 $structure = $this->get_date_permastruct($this->permalink_structure); … … 433 918 } 434 919 920 /** 921 * {@internal Missing Short Description}} 922 * 923 * {@internal Missing Long Description}} 924 * 925 * @since 1.5.0 926 * @access public 927 * 928 * @return unknown 929 */ 435 930 function get_day_permastruct() { 436 931 return $this->get_date_permastruct($this->permalink_structure); 437 932 } 438 933 934 /** 935 * {@internal Missing Short Description}} 936 * 937 * {@internal Missing Long Description}} 938 * 939 * @since 1.5.0 940 * @access public 941 * 942 * @return unknown 943 */ 439 944 function get_category_permastruct() { 440 945 if (isset($this->category_structure)) { … … 457 962 } 458 963 964 /** 965 * {@internal Missing Short Description}} 966 * 967 * {@internal Missing Long Description}} 968 * 969 * @since 2.3.0 970 * @access public 971 * 972 * @return unknown 973 */ 459 974 function get_tag_permastruct() { 460 975 if (isset($this->tag_structure)) { … … 483 998 } 484 999 1000 /** 1001 * {@internal Missing Short Description}} 1002 * 1003 * {@internal Missing Long Description}} 1004 * 1005 * @since 1.5.0 1006 * @access public 1007 * 1008 * @return unknown 1009 */ 485 1010 function get_author_permastruct() { 486 1011 if (isset($this->author_structure)) { … … 498 1023 } 499 1024 1025 /** 1026 * {@internal Missing Short Description}} 1027 * 1028 * {@internal Missing Long Description}} 1029 * 1030 * @since 1.5.0 1031 * @access public 1032 * 1033 * @return unknown 1034 */ 500 1035 function get_search_permastruct() { 501 1036 if (isset($this->search_structure)) { … … 513 1048 } 514 1049 1050 /** 1051 * {@internal Missing Short Description}} 1052 * 1053 * {@internal Missing Long Description}} 1054 * 1055 * @since 1.5.0 1056 * @access public 1057 * 1058 * @return unknown 1059 */ 515 1060 function get_page_permastruct() { 516 1061 if (isset($this->page_structure)) { … … 528 1073 } 529 1074 1075 /** 1076 * {@internal Missing Short Description}} 1077 * 1078 * {@internal Missing Long Description}} 1079 * 1080 * @since 1.5.0 1081 * @access public 1082 * 1083 * @return unknown 1084 */ 530 1085 function get_feed_permastruct() { 531 1086 if (isset($this->feed_structure)) { … … 543 1098 } 544 1099 1100 /** 1101 * {@internal Missing Short Description}} 1102 * 1103 * {@internal Missing Long Description}} 1104 * 1105 * @since 1.5.0 1106 * @access public 1107 * 1108 * @return unknown 1109 */ 545 1110 function get_comment_feed_permastruct() { 546 1111 if (isset($this->comment_feed_structure)) { … … 558 1123 } 559 1124 1125 /** 1126 * {@internal Missing Short Description}} 1127 * 1128 * {@internal Missing Long Description}} 1129 * 1130 * @since 1.5.0 1131 * @access public 1132 * 1133 * @param unknown_type $tag 1134 * @param unknown_type $pattern 1135 * @param unknown_type $query 1136 */ 560 1137 function add_rewrite_tag($tag, $pattern, $query) { 561 1138 // If the tag already exists, replace the existing pattern and query for … … 573 1150 } 574 1151 575 //the main WP_Rewrite function. generate the rules from permalink structure 1152 /** 1153 * Generate the rules from permalink structure 1154 * 1155 * {@internal Missing Long Description}} 1156 * 1157 * The main WP_Rewrite function. 1158 * 1159 * @since 1.5.0 1160 * @access public 1161 * 1162 * @param unknown_type $permalink_structure 1163 * @param unknown_type $ep_mask 1164 * @param unknown_type $paged 1165 * @param unknown_type $feed 1166 * @param unknown_type $forcomments 1167 * @param unknown_type $walk_dirs 1168 * @param unknown_type $endpoints 1169 * @return unknown 1170 */ 576 1171 function generate_rewrite_rules($permalink_structure, $ep_mask = EP_NONE, $paged = true, $feed = true, $forcomments = false, $walk_dirs = true, $endpoints = true) { 577 1172 //build a regex to match the feed section of URLs, something like (feed|atom|rss|rss2)/? … … 790 1385 } 791 1386 1387 /** 1388 * {@internal Missing Short Description}} 1389 * 1390 * {@internal Missing Long Description}} 1391 * 1392 * @since 1.5.0 1393 * @access public 1394 * 1395 * @param unknown_type $permalink_structure 1396 * @param unknown_type $walk_dirs 1397 * @return unknown 1398 */ 792 1399 function generate_rewrite_rule($permalink_structure, $walk_dirs = false) { 793 1400 return $this->generate_rewrite_rules($permalink_structure, EP_NONE, false, false, false, $walk_dirs); 794 1401 } 795 1402 796 /* rewrite_rules 797 * Construct rewrite matches and queries from permalink structure. 798 * Returns an associate array of matches and queries. 1403 /** 1404 * Construct rewrite matches and queries from permalink structure 1405 * 1406 * {@internal Missing Long Description}} 1407 * 1408 * @since 1.5.0 1409 * @access public 1410 * 1411 * @return array an associate array of matches and queries 799 1412 */ 800 1413 function rewrite_rules() { … … 869 1482 } 870 1483 1484 /** 1485 * {@internal Missing Short Description}} 1486 * 1487 * {@internal Missing Long Description}} 1488 * 1489 * @since 1.5.0 1490 * @access public 1491 * 1492 * @return unknown 1493 */ 871 1494 function wp_rewrite_rules() { 872 1495 $this->rules = get_option('rewrite_rules'); … … 880 1503 } 881 1504 1505 /** 1506 * {@internal Missing Short Description}} 1507 * 1508 * {@internal Missing Long Description}} 1509 * 1510 * @since 1.5.0 1511 * @access public 1512 * 1513 * @return unknown 1514 */ 882 1515 function mod_rewrite_rules() { 883 1516 if ( ! $this->using_permalinks()) { … … 947 1580 } 948 1581 949 //Add a straight rewrite rule 1582 /** 1583 * Add a straight rewrite rule 1584 * 1585 * {@internal Missing Long Description}} 1586 * 1587 * @since 2.1.0 1588 * @access public 1589 * 1590 * @param unknown_type $regex 1591 * @param unknown_type $redirect 1592 * @param unknown_type $after 1593 */ 950 1594 function add_rule($regex, $redirect, $after = 'bottom') { 951 1595 //get everything up to the first ? … … 963 1607 } 964 1608 965 //add a rule that doesn't redirect to index.php 1609 /** 1610 * Add a rule that doesn't redirect to index.php 1611 * 1612 * {@internal Missing Long Description}} 1613 * 1614 * @since 2.1.0 1615 * @access public 1616 * 1617 * @param unknown_type $regex 1618 * @param unknown_type $redirect 1619 */ 966 1620 function add_external_rule($regex, $redirect) { 967 1621 $this->non_wp_rules[$regex] = $redirect; 968 1622 } 969 1623 970 //add an endpoint, like /trackback/, to be inserted after certain URL types (specified in $places) 1624 /** 1625 * Add an endpoint, like /trackback/ 1626 * 1627 * {@internal Missing Long Description}} 1628 * 1629 * To be inserted after certain URL types (specified in $places) 1630 * 1631 * @since 2.1.0 1632 * @access public 1633 * 1634 * @param unknown_type $name 1635 * @param unknown_type $places 1636 */ 971 1637 function add_endpoint($name, $places) { 972 1638 global $wp; … … 981 1647 } 982 1648 1649 /** 1650 * {@internal Missing Short Description}} 1651 * 1652 * {@internal Missing Long Description}} 1653 * 1654 * @since 2.0.1 1655 * @access public 1656 */ 983 1657 function flush_rules() { 984 1658 delete_option('rewrite_rules'); … … 988 1662 } 989 1663 1664 /** 1665 * {@internal Missing Short Description}} 1666 * 1667 * {@internal Missing Long Description}} 1668 * 1669 * @since 1.5.0 1670 * @access public 1671 */ 990 1672 function init() { 991 1673 $this->extra_rules = $this->non_wp_rules = $this->endpoints = array(); … … 1020 1702 } 1021 1703 1704 /** 1705 * {@internal Missing Short Description}} 1706 * 1707 * {@internal Missing Long Description}} 1708 * 1709 * @since 1.5.0 1710 * @access public 1711 * 1712 * @param unknown_type $permalink_structure 1713 */ 1022 1714 function set_permalink_structure($permalink_structure) { 1023 1715 if ($permalink_structure != $this->permalink_structure) { … … 1027 1719 } 1028 1720 1721 /** 1722 * {@internal Missing Short Description}} 1723 * 1724 * {@internal Missing Long Description}} 1725 * 1726 * @since 1.5.0 1727 * @access public 1728 * 1729 * @param unknown_type $category_base 1730 */ 1029 1731 function set_category_base($category_base) { 1030 1732 if ($category_base != $this->category_base) { … … 1034 1736 } 1035 1737 1738 /** 1739 * {@internal Missing Short Description}} 1740 * 1741 * {@internal Missing Long Description}} 1742 * 1743 * @since 2.3.0 1744 * @access public 1745 * 1746 * @param unknown_type $tag_base 1747 */ 1036 1748 function set_tag_base( $tag_base ) { 1037 1749 if ( $tag_base != $this->tag_base ) { … … 1041 1753 } 1042 1754 1755 /** 1756 * {@internal Missing Short Description}} 1757 * 1758 * {@internal Missing Long Description}} 1759 * 1760 * @since 1.5.0 1761 * @access public 1762 * 1763 * @return WP_Rewrite 1764 */ 1043 1765 function WP_Rewrite() { 1044 1766 $this->init();
Note: See TracChangeset
for help on using the changeset viewer.