Saya mencoba menampilkan konten ketika saya berada di halaman depan situs web Drupal 8 test saya, tetapi kontennya ditampilkan di setiap halaman:
{% if front_page %}
<header role="banner">
{% if logo %}
<a href="{{ front_page }}" title="{{ 'Home'|t }}" rel="home">
<img src="{{ logo }}" alt="{{ 'Home'|t }}"/>
</a>
{% endif %}
<h1 style="color:black">TESTTESTTESTESTAET</h1>
<h1>test</h1
{{ page.header }}
</header>
{% endif %}
Mengapa ini tidak berhasil dan bagaimana saya bisa membuat ini berfungsi?
Perhatikan bahwa jika Anda ingin menyediakan
$variables['is_front']
untuk templat yang tidak, Anda dapat menambahkan ini ke fungsi preproses yang bersangkutan.Ini dilakukan dengan cara yang sama di template_preprocess_page untuk
page.html.twig
.Jawaban yang sama di sini
sumber
url.path.is_front
sebagai konteks cache juga. Lihat komentar ini .Dengan asumsi bahwa template yang Anda gunakan adalah page.html.twig, maka variabel yang Anda cari adalah
is_front
;front_page
berisi URL halaman depan, diinisialisasitemplate_preprocess_page()
dengan kode berikut.Untuk file templat lainnya, Drupal tidak menyediakan variabel yang memberi tahu Anda jika pengguna mengunjungi halaman depan. Menggunakan kode yang mirip dengan yang digunakan dari
template_preprocess_page()
, Anda dapat mengatur variabel itu dalam fungsi preprocess untuk template yang Anda gunakan.Ganti
HOOK
dengan tipe templat (misalnya bidang untuk templat field.hmtl.twig).sumber
Anda bisa mendapatkannya langsung di html.html.twig menggunakan root_path. Ini sudah keluaran pada baris 31 untuk mengatur kelas tubuh:
{% jika bukan root_path%}
KODE
{% berakhir jika %}
sumber