Câu trả lời:
logo_path
dường như chỉ được đặt nếu bạn ghi đè logo mặc định của chủ đề thông qua cài đặt chủ đề. Để có được logo mặc định, sử dụng theme_get_setting('logo')
.
theme_get_setting('logo')
là chuỗi rỗng? Tôi đã đặt logo tùy chỉnh của mình trong/admin/appearance/setting
TOGGLE DISPLAY - Enable or disable the display of certain page elements.
thì theme_get_setting('logo')
không có kết quả. Tại sao ?
<a href="<?php echo theme_get_setting('logo');?>">
trong một khối mã PHP để hiển thị logo trong khối riêng của bạn.
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]
// …
}
Cuộc gọi tới drupal_theme_initialize () không thực sự cần thiết và nó không làm gì nếu biến toàn cục $theme
đã được khởi tạo.
Mã đang xóa URL cơ sở vì giá trị được báo cáo theme_get_setting('logo')
là một đường dẫn tuyệt đối; nếu bạn không cần một đường dẫn tương đối để truy cập tệp, thì phần giữa // [1]
có thể bị xóa.
Khi logo đã bị vô hiệu hóa trong cài đặt chủ đề, theme_get_setting('logo')
không trả lại bất cứ điều gì.
[1]
bằng $logo = file_create_url($logo);
để có được đường dẫn URL đầy đủ của logo (với http: //).
theme_get_setting('logo_path', 'THEME_NAME')
, thay thế THEME_NAME bằng tên chủ đề của bạn chưa?