Better $pagenow determination. fixes #4748 for 2.0

git-svn-id: http://svn.automattic.com/wordpress/branches/2.0@6066 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
markjaquith 2007-09-10 14:06:29 +00:00
parent 572fa79e9a
commit 1b79d826a6
1 changed files with 16 additions and 7 deletions

View File

@ -1,15 +1,24 @@
<?php
// On which page are we ?
if (preg_match('#([^/]+\.php)$#', $PHP_SELF, $self_matches)) {
if ( is_admin() ) {
// wp-admin pages are checked more carefully
preg_match('#/wp-admin/?(.*?)$#i', $PHP_SELF, $self_matches);
$pagenow = $self_matches[1];
} else if (strstr($PHP_SELF, '?')) {
$pagenow = explode('/', $PHP_SELF);
$pagenow = trim($pagenow[(sizeof($pagenow)-1)]);
$pagenow = explode('?', $pagenow);
$pagenow = $pagenow[0];
$pagenow = preg_replace('#\?.*?$#', '', $pagenow);
if ( '' === $pagenow || 'index' === $pagenow || 'index.php' === $pagenow ) {
$pagenow = 'index.php';
} else {
preg_match('#(.*?)(/|$)#', $pagenow, $self_matches);
$pagenow = strtolower($self_matches[1]);
if ( '.php' !== substr($pagenow, -4, 4) )
$pagenow .= '.php'; // for Options +Multiviews: /wp-admin/themes/index.php (themes.php is queried)
}
} else {
$pagenow = 'index.php';
if ( preg_match('#([^/]+\.php)([?/].*?)?$#i', $PHP_SELF, $self_matches) )
$pagenow = strtolower($self_matches[1]);
else
$pagenow = 'index.php';
}
// Simple browser detection