Nhận tên trang web trong mẫu tùy chỉnh


7

Tôi muốn in tên trang web trong một mẫu tùy chỉnh ( page--front.html.twig)

{{ site_name }} không hoạt động.

Nếu tôi sử dụng, {{ page['#title'] }}tôi chỉ nhận được "Chào mừng đến với [site_name]".

Tôi đang tìm cách chỉ in trang web_name. Có ai biết làm thế nào để đạt được điều này?

Cảm ơn!

Câu trả lời:


11

Thêm phần này vào YOUR_THEME.themetập tin:

function YOUR_THEME_preprocess_page(&$variables) {
  $variables['site_name'] = \Drupal::config('system.site')->get('name');
}

Và sau đó trong page--front.html.twigmẫu của bạn :

{{ site_name }}

6

Mọi thứ đã thay đổi một số từ Drupal 7 thành Drupal 8. Một trong những điều đã thay đổi, đó là một ý tưởng thực sự tốt khi sử dụng các khối thay vì tự tìm nạp và hiển thị nội dung này. Lý do chính là bộ nhớ đệm.

Những gì bạn có thể muốn làm là đặt khối thương hiệu trang web ở đâu đó trên trang (có thể hiển thị tên trang web, logo và / hoặc khẩu hiệu). Rất nhiều thứ đã được mã hóa cứng trong các chủ đề, giờ là các khối.

Có một nỗ lực lớn trong việc này, vì nó làm cho bộ nhớ đệm và tăng hiệu suất rất lớn có thể đạt được trong Drupal 8.

Nếu bạn thực sự muốn thực hiện theo cách Drupal 7, câu trả lời của @ Aram chỉ cho bạn cách thực hiện với móc tiền xử lý.


Rất thú vị. Cảm ơn! Tôi đã tìm thấy cách triển khai khối trong mẫu * .twig bằng cách sử dụng đoạn mã sau: {% bao gồm 'Themes / bootstrap / samples / block - system-branding-block.html.twig'%}. Điều này có ổn không hay bạn muốn giới thiệu một cách tiếp cận khác?
Stefan

@Phil Tôi khuyên bạn nên tạo một vùng trong chủ đề của mình, đồng thời định cấu hình và đặt khối. Nếu cần thiết để có thể tạo mẫu tùy chỉnh để thay đổi đánh dấu được tạo, hầu hết các lần không cần thiết.
googletorp

1

Có trong D8 twig templatecác tệp bạn không thể viết mã để tìm nạp dữ liệu.

Nếu bạn cần bất kỳ dữ liệu nào thì bạn cần đặt các biến trong preprocesshàm & sử dụng biến đó.

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.