WordPress.org

Make WordPress Core

Ticket #4748: 4748-branches2.0.diff

File 4748-branches2.0.diff, 1.3 KB (added by westi, 14 years ago)

Backport of $pagenow fix to 2.0

  • branches/2.0/wp-includes/vars.php

     
    11<?php
    22
    33// On which page are we ?
    4 if (preg_match('#([^/]+\.php)$#', $PHP_SELF, $self_matches)) {
     4if ( is_admin() ) {
     5        // wp-admin pages are checked more carefully
     6        preg_match('#/wp-admin/?(.*?)$#i', $PHP_SELF, $self_matches);
    57        $pagenow = $self_matches[1];
    6 } else if (strstr($PHP_SELF, '?')) {
    7         $pagenow = explode('/', $PHP_SELF);
    8         $pagenow = trim($pagenow[(sizeof($pagenow)-1)]);
    9         $pagenow = explode('?', $pagenow);
    10         $pagenow = $pagenow[0];
     8        $pagenow = preg_replace('#\?.*?$#', '', $pagenow);
     9        if ( '' === $pagenow || 'index' === $pagenow || 'index.php' === $pagenow ) {
     10                $pagenow = 'index.php';
     11        } else {
     12                preg_match('#(.*?)(/|$)#', $pagenow, $self_matches);
     13                $pagenow = strtolower($self_matches[1]);
     14                if ( '.php' !== substr($pagenow, -4, 4) )
     15                        $pagenow .= '.php'; // for Options +Multiviews: /wp-admin/themes/index.php (themes.php is queried)
     16        }
    1117} else {
    12         $pagenow = 'index.php';
     18        if ( preg_match('#([^/]+\.php)([?/].*?)?$#i', $PHP_SELF, $self_matches) )
     19                $pagenow = strtolower($self_matches[1]);
     20        else
     21                $pagenow = 'index.php';
    1322}
    1423
    1524// Simple browser detection