Make WordPress Core


Ignore:
Timestamp:
12/04/2004 12:12:08 AM (22 years ago)
Author:
rboren
Message:

Improve plugin hooks for rewrite manipulation. Allow pluggable template redirection.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/classes.php

    r1908 r1910  
    705705        var $date_structure;
    706706        var $front;
    707         var $prefix = '';
     707        var $root = '';
    708708        var $index = 'index.php';
    709709        var $matches = '';
     710        var $rules;
    710711        var $rewritecode =
    711712                array(
     
    877878        }
    878879
    879         function generate_rewrite_rules($permalink_structure = '', $forcomments = false) {
     880        function add_rewrite_tag($tag, $pattern, $query) {
     881                $this->rewritecode[] = $tag;
     882                $this->rewritereplace[] = $pattern;
     883                $this->queryreplace[] = $query;
     884        }
     885
     886        function generate_rewrite_rules($permalink_structure = '', $page = true, $feed = true, $forcomments = false) {
    880887                $feedregex2 = '(feed|rdf|rss|rss2|atom)/?$';
    881888                $feedregex = 'feed/' . $feedregex2;
     
    933940                                $feedquery2 .= '&withcomments=1';
    934941                        }
    935                                
    936                         $rewrite = array($feedmatch => $feedquery, $feedmatch2 => $feedquery2, $pagematch => $pagequery);
     942
     943                        $rewrite = array();
     944                        if ($feed)
     945                                $rewrite = array($feedmatch => $feedquery, $feedmatch2 => $feedquery2);
     946                        if ($page)
     947                                $rewrite = $rewrite + array($pagematch => $pagequery);
    937948
    938949                        if ($num_toks) {
     
    981992               
    982993                // Root
    983                 $root_rewrite = $this->generate_rewrite_rules($this->prefix . '/');
     994                $root_rewrite = $this->generate_rewrite_rules($this->root . '/');
    984995
    985996                // Comments
    986                 $comments_rewrite = $this->generate_rewrite_rules($this->prefix . 'comments', true);
     997                $comments_rewrite = $this->generate_rewrite_rules($this->root . 'comments',true, true, true);
    987998
    988999                // Search
    989                 $search_structure = $this->prefix . "search/%search%";
     1000                $search_structure = $this->root . "search/%search%";
    9901001                $search_rewrite = $this->generate_rewrite_rules($search_structure);
    9911002
     
    10011012
    10021013                // Deprecated style static pages
    1003                 $page_structure = $this->prefix . 'site/%pagename%';
     1014                $page_structure = $this->root . 'site/%pagename%';
    10041015                $old_page_rewrite = $this->generate_rewrite_rules($page_structure);
    10051016
    10061017                // Put them together.
    1007                 $this->rewrite = $page_rewrite + $root_rewrite + $comments_rewrite + $old_page_rewrite + $search_rewrite + $category_rewrite + $author_rewrite + $date_rewrite + $post_rewrite;
    1008 
    1009                 $this->rewrite = apply_filters('rewrite_rules_array', $this->rewrite);
    1010                 return $this->rewrite;
     1018                $this->rules = $page_rewrite + $root_rewrite + $comments_rewrite + $old_page_rewrite + $search_rewrite + $category_rewrite + $author_rewrite + $date_rewrite + $post_rewrite;
     1019
     1020                do_action('generate_rewrite_rules', '');
     1021                $this->rules = apply_filters('rewrite_rules_array', $this->rules);
     1022                return $this->rules;
    10111023        }
    10121024
     
    10301042                $this->matches = '';
    10311043                $rewrite = $this->rewrite_rules();
    1032 
    10331044                $num_rules = count($rewrite);
    10341045                $rules .= "RewriteCond %{REQUEST_FILENAME} -f [OR]\n" .
     
    10621073                $this->permalink_structure = get_settings('permalink_structure');
    10631074                $this->front = substr($this->permalink_structure, 0, strpos($this->permalink_structure, '%'));         
    1064                 $this->prefix = '';
     1075                $this->root = '';
    10651076                if ($this->using_index_permalinks()) {
    1066                         $this->prefix = $this->index . '/';
     1077                        $this->root = $this->index . '/';
    10671078                }
    10681079                $this->category_base = get_settings('category_base');
Note: See TracChangeset for help on using the changeset viewer.