Je suis un novice en PHP, alors supportez-moi si ma terminologie est incorrecte.Conflit de nom de fonction lors de l'inclusion d'un fichier PHP dans un thème WordPress
J'ai un petit fichier PHP (page_class.php
) qui définit certaines fonctions et j'inclure ce fichier dans le header.php de mon thème:
<?php include("page_class.php"); ?>
Et ceux-ci sont le contenu de 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;
}
?>
J'appelle à get_body_class
header.php
:
<body class="<?php echo get_body_class(); ?>">
Cette installation a fonctionné dans WordPress MU 2.7.1. J'ai récemment mis à jour à 2.8.6 et il s'est cassé. Lorsque j'ai visité une page du blog, l'écran était vide. Après quelques recherches, je me suis rendu compte qu'en changeant les noms des fonctions (je les préfixais avec jk_
) cela a fonctionné à nouveau. J'ai supposé que c'était un conflit de nommage, mais je n'en ai trouvé aucun. Je me demande si les développeurs PHP ou WordPress ont une idée de ce qui se passe.
Maintenant, sachez comment 'trouver grep' manqué cela. Merci. –
Pas de problème. Je viens d'éditer ma réponse un peu. –
Excellent, merci. –