Saya mencoba untuk menyembunyikan judul halaman saat ini (seperti yang dicetak oleh page.tpl.php
) jika halaman saat ini adalah 1) sebuah node dalam tampilan penuh (sebagai lawan dari mode teaser), DAN 2) jenis node adalah konser atau bio . Saya mencetak judul simpul untuk jenis konten ini secara langsung dalam konten simpul, jadi saya ingin menyembunyikan duplikat yang dicetak oleh page.tpl.php. Saya tidak bisa mendapatkan ini berfungsi langsung di page.tpl.php, dan bacaan saya menyarankan praktik terbaik adalah menangani logika template di template.php menggunakan fungsi preprocess dan proses. Jadi, saya mencoba menyembunyikan judul halaman saat ini (dengan 2 kondisi di atas) menggunakan template_preprocess_page()
. Ini kode saya.
<?php
function MYTHEME_preprocess_page(&$variables) {
if (!empty($variables['node']) && $variables['node']->type == 'concert') {
hide($variables['title']);
}
}
?>
Saya membaca Bagaimana cara menguji jenis simpul untuk mencetak variabel dari template.php? dan halaman dokumentasi untuk template_preprocess_page()
, dan berbagai situs lain, tapi sepertinya saya tidak bisa membuatnya berfungsi. Saya melihat saran bahwa Anda harus menelepon isset()
pada $variables['node']
sebelum pengujian untuk jenis node, tapi itu tidak berhasil. Saya tidak melihat solusi yang jelas diposting di mana pun, dan saya pada akhir kecerdasan saya.
$title
variabel aktual denganmytheme_process_page(&$variables) { $title = false; }
.mytheme_process_page(&$variables) { $variables['title'] = false; }
dan itu bekerja BTW.<?php print $title; ?>
dalam<?php if (!$title_hidden): ?>
Anda hanya dapat mengatur$variables['title_hidden'] = TRUE;
Anda dapat mengelola ini menggunakan drupal_set_title ().
sumber
template_preprocess_page()
? Saya telah menggunakan modul Theme Developer untuk memeriksa judul halaman duplikat dan mengonfirmasi bahwa itu dipanggil daripage.tpl.php
. Haruskah saya berpikir untuk menghapus judul daripage.tpl.php
dan kemudian ADD itu kembali di tempat yang saya inginkantemplate_preprocess_page()
? Saya ingin judul ditampilkan, misalnya, ketika halaman berisi tampilan node, tetapi tidak ketika halaman adalah satu node dari tipe / tipe tertentu.Coba ini dengan asumsi kondisi Anda benar :)
sumber
$variables['title']
dengan nilai yang dikembalikandrupal_get_title()
.Cara yang tidak terlalu rumit adalah dengan mencetak ini di page.tpl.php Anda
Tetapi jika Anda ingin menjadi dinamis saya sarankan untuk menggunakan
preprocess_page
seperti yang disarankan oleh orang lain.sumber
hide()
digunakan dengan rendering array, bukan string.Di CSS, saya melakukan ini dengan tema saya
Seperti yang direkomendasikan oleh http://www.alistapart.com/articles/now-you-see-me/
Mengapa? Karena Anda masih ingin memiliki tajuk dan h1 'terlihat' oleh pembaca layar untuk aksesibilitas. Jika Anda hanya menghilangkan nilai H1, Anda merampok pengunjung buta dan low vision Anda dari beberapa informasi yang berpotensi penting.
sumber
saran dari mytheme_preprocess_page bekerja untuk saya tetapi jika digunakan
$vars['title_hidden'] = TRUE;
sumber
Fungsi yang benar adalah
dari pada
sumber