Antworten:
logo_path
scheint nur eingestellt zu sein, wenn Sie das Standardlogo des Themas über seine Designeinstellungen überschreiben. Verwenden Sie, um das Standardlogo zu erhalten theme_get_setting('logo')
.
theme_get_setting('logo')
eine leere Zeichenfolge? Ich habe mein benutzerdefiniertes Logo in/admin/appearance/setting
TOGGLE DISPLAY - Enable or disable the display of certain page elements.
das theme_get_setting('logo')
keine Ergebnisse. Warum ?
<a href="<?php echo theme_get_setting('logo');?>">
in einem PHP-Codeblock, um das Logo in Ihrem eigenen Block anzuzeigen.
global $base_url;
drupal_theme_initialize();
if (!$logo = theme_get_setting('logo_path')) {
$logo = theme_get_setting('logo');
}
if (!empty($logo)) {
// [1]
// Remove the base URL from the result returned by theme_get_setting('logo').
// If you don't need the relative path, you can remove this code.
if (strpos($logo, $base_url) === 0) {
$logo = drupal_substr($logo, drupal_strlen($base_url));
}
// [1]
// …
}
Der Aufruf von drupal_theme_initialize () ist nicht unbedingt erforderlich und führt zu nichts, wenn die globale Variable $theme
bereits initialisiert ist.
Der Code entfernt die Basis-URL, da der gemeldete Wert theme_get_setting('logo')
ein absoluter Pfad ist. Wenn Sie keinen relativen Pfad für den Zugriff auf die Datei benötigen, kann der dazwischen liegende Teil // [1]
entfernt werden.
Wenn das Logo in den Designeinstellungen deaktiviert wurde, theme_get_setting('logo')
wird nichts zurückgegeben.
[1]
mit $logo = file_create_url($logo);
, um den vollständigen URL - Pfad des Logos (mit http: //) zu erhalten.
theme_get_setting('logo_path', 'THEME_NAME')
, THEME_NAME durch den Namen Ihres Themas zu ersetzen?