我是PHP新手,如果我的任何術語不正確,請耐心等待。在WordPress主題中包含PHP文件時函數名稱衝突
我有一個小的PHP文件(page_class.php
),它定義了一些功能,包括我在我的主題的header.php這個文件:
<?php include("page_class.php"); ?>
而這些都page_class.php
內容:
<?php
function curPageURL() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
function get_subdomain() {
$page_url = curPageURL();
$parts = split('\.', $_SERVER["SERVER_NAME"]);
return $parts[0];
}
function get_body_class() {
$subdomain = get_subdomain();
if ($subdomain == "keyes") {
$path_parts = split('/', $_SERVER["REQUEST_URI"]);
$clazz = $path_parts[1];
}
else {
$clazz = $subdomain;
}
if ($clazz == "greasemonkey" || $clazz == "wordpress") {
$clazz = "work";
}
if ($clazz == "") {
$clazz = "home";
}
return $clazz;
}
?>
我打電話get_body_class
在header.php
:
<body class="<?php echo get_body_class(); ?>">
這個設置工作在WordPress MU 2.7.1。我最近升級到2.8.6,它打破了。當我訪問博客上的任何頁面時,屏幕都是空白的。
經過一番調查後,我發現通過改變函數名稱(我在前綴jk_
前面),它再次運行。
我猜這是一個命名衝突,但找不到任何。我想知道任何PHP或WordPress開發者都知道爲什麼會發生這種情況。
現在確定我的'find grep'如何錯過了。謝謝。 – 2009-12-20 23:25:42
沒問題。我剛剛編輯了我的答案。 – 2009-12-20 23:26:44
非常好,謝謝。 – 2009-12-20 23:34:55