Câu trả lời:
logo_pathdườ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?