WP_Rewrite::rewrite_rules() – Constructs rewrite matches and queries from permalink structure.

You appear to be a bot. Output may be restricted

Description

Constructs rewrite matches and queries from permalink structure.

Runs the action generate_rewrite_rules with the parameter that is an reference to the current WP_Rewrite instance to further manipulate the permalink structures and rewrite rules. Runs the rewrite_rules_array filter on the full rewrite rule array. There are two ways to manipulate the rewrite rules, one by hooking into the generate_rewrite_rules action and gaining full control of the object or just manipulating the rewrite rule array before it is passed from the function.

Usage

$string[] = WP_Rewrite::rewrite_rules();

Parameters

Returns

string[] An associative array of matches and queries.

Source

File name: wordpress/wp-includes/class-wp-rewrite.php
Lines:

1 to 100 of 201
  public function rewrite_rules() {
    $rewrite = array();

    if ( empty( $this->permalink_structure ) ) {
      return $rewrite;
    }

    // robots.txt -- only if installed at the root.
    $home_path      = parse_url( home_url() );
    $robots_rewrite = ( empty( $home_path['path'] ) || '/' === $home_path['path'] ) ? array( 'robots\.txt$' => $this->index . '?robots=1' ) : array();

    // favicon.ico -- only if installed at the root.
    $favicon_rewrite = ( empty( $home_path['path'] ) || '/' === $home_path['path'] ) ? array( 'favicon\.ico$' => $this->index . '?favicon=1' ) : array();

    // Old feed and service files.
    $deprecated_files = array(
      '.*wp-(atom|rdf|rss|rss2|feed|commentsrss2)\.php$' => $this->index . '?feed=old',
      '.*wp-app\.php(/.*)?$' => $this->index . '?error=403',
    );

    // Registration rules.
    $registration_pages = array();
    if ( is_multisite() && is_main_site() ) {
      $registration_pages['.*wp-signup.php$']   = $this->index . '?signup=true';
      $registration_pages['.*wp-activate.php$'] = $this->index . '?activate=true';
    }

    // Deprecated.
    $registration_pages['.*wp-register.php$'] = $this->index . '?register=true';

    // Post rewrite rules.
    $post_rewrite = $this->WP_Rewrite::generate_rewrite_rules( $this->permalink_structure, EP_PERMALINK );

    
/**
 * Filters rewrite rules used for "post" archives.
 *
 * @since 1.5.0
 *
 * @param string[] $post_rewrite Array of rewrite rules for posts, keyed by their regex pattern.
 */
    $post_rewrite = apply_filters( 'post_rewrite_rules', $post_rewrite );

    // Date rewrite rules.
    $date_rewrite = $this->WP_Rewrite::generate_rewrite_rules( $this->WP_Rewrite::get_date_permastruct(), EP_DATE );

    
/**
 * Filters rewrite rules used for date archives.
 *
 * Likely date archives would include `/yyyy/`, `/yyyy/mm/`, and `/yyyy/mm/dd/`.
 *
 * @since 1.5.0
 *
 * @param string[] $date_rewrite Array of rewrite rules for date archives, keyed by their regex pattern.
 */
    $date_rewrite = apply_filters( 'date_rewrite_rules', $date_rewrite );

    // Root-level rewrite rules.
    $root_rewrite = $this->WP_Rewrite::generate_rewrite_rules( $this->root . '/', EP_ROOT );

    
/**
 * Filters rewrite rules used for root-level archives.
 *
 * Likely root-level archives would include pagination rules for the homepage
 * as well as site-wide post feeds (e.g. `/feed/`, and `/feed/atom/`).
 *
 * @since 1.5.0
 *
 * @param string[] $root_rewrite Array of root-level rewrite rules, keyed by their regex pattern.
 */
    $root_rewrite = apply_filters( 'root_rewrite_rules', $root_rewrite );

    // Comments rewrite rules.
    $comments_rewrite = $this->WP_Rewrite::generate_rewrite_rules( $this->root . $this->comments_base, EP_COMMENTS, false, true, true, false );

    
/**
 * Filters rewrite rules used for comment feed archives.
 *
 * Likely comments feed archives include `/comments/feed/` and `/comments/feed/atom/`.
 *
 * @since 1.5.0
 *
 * @param string[] $comments_rewrite Array of rewrite rules for the site-wide comments feeds, keyed by their regex pattern.
 */
    $comments_rewrite = apply_filters( 'comments_rewrite_rules', $comments_rewrite );

    // Search rewrite rules.
    $search_structure = $this->WP_Rewrite::get_search_permastruct();
    $search_rewrite   = $this->WP_Rewrite::generate_rewrite_rules( $search_structure, EP_SEARCH );

    
/**
 * Filters rewrite rules used for search archives.
 *
 * Likely search-related archives include `/search/search+query/` as well as
 * pagination and feed paths for a search.
 *
 * @since 1.5.0
 *
 * @param string[] $search_rewrite Array of rewrite rules for search queries, keyed by their regex pattern.
 */
    $search_rewrite = apply_filters( 'search_rewrite_rules', $search_rewrite );
 

 View on GitHub View on Trac