Làm thế nào để có được đường dẫn logo trong Drupal 7?


7

Tôi có một logo tùy chỉnh và tôi đã cố gắng để có được con đường của anh ấy theo cách này theme_get_setting('logo_path'), nhưng không có kết quả mong đợi.

Tôi đang sử dụng mã trong một khối tùy chỉnh, trong PHP đầu vào.


3
Bạn đang sử dụng mã này ở đâu? Bạn đã thử theme_get_setting('logo_path', 'THEME_NAME'), thay thế THEME_NAME bằng tên chủ đề của bạn chưa?
marcvangend

Câu trả lời:


7

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').


Nhưng tại sao kết quả 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
Ek Kosmos

Tại sao khi Logo bị hủy kích hoạt khỏi chủ đề 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 ?
Ek Kosmos

1
Cảm ơn, đó chính xác là những gì tôi đang tìm kiếm! Sử dụng <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.
Coomie

4
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ì.


Tôi đã thay thế mã [1]bằng $logo = file_create_url($logo);để có được đường dẫn URL đầy đủ của logo (với http: //).
Matt Fletcher
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.