Menanggapi: Admin bar WordPress tumpang tindih navigasi bootstrap twitter
Ditanyakan oleh: @TheWebs
Jika Anda menggunakan Twitter Bootstrap dengan WordPress dan memiliki masalah dengan bilah admin WordPress yang tumpang tindih dengan bilah navigasi Anda, Anda mungkin cukup frustrasi dengan beberapa jawaban ini. Saya mencari solusi di mana-mana sebelum akhirnya memutuskan untuk beralih ke gigi yang lebih rendah dan mencari solusi yang melakukan apa yang saya butuhkan.
Jadi, inilah jawaban yang tidak menyembunyikan bilah admin WordPress, atau memindahkan bilah admin WordPress ke bagian bawah halaman Anda. Jawaban ini akan membuat bar admin WordPress tetap di tempatnya ... Di bagian atas halaman Anda.
Harap dicatat bahwa ini akan mengambil beberapa langkah singkat untuk diselesaikan, tetapi itu sepadan. Ini bukan proses yang rumit atau memakan waktu. Saya hanya ingin memastikan bahwa penjelasannya jelas dan mudah diikuti / dimengerti.
Langkah 1
Tema memiliki tag template untuk tag tubuh yang akan membantu penulis tema untuk mendesain lebih efektif dengan CSS. Tag Templat disebut
body_class
. Fungsi ini memberikan elemen tubuh kelas yang berbeda dan dapat ditambahkan, biasanya, dalam header.php
tag tubuh HTML.
- Buka tema WordPress Anda yang sedang aktif menggunakan direktori Twitter Bootstrap. Temukan
header.php
dan buka.
- Temukan
<body>
.
- Ubah dengan
<?php echo '<body class="'.join(' ', get_body_class()).'">'.PHP_EOL; ?>
Setelah menyelesaikan tiga langkah di atas, Anda sekarang telah berhasil mengaktifkan tema WordPress Anda dengan kelas tubuh WordPress.
Langkah 2 (OPTIONAL!)
- Tambahkan kelas CSS khusus bersyarat ke
<body>
tag.
Secara default, WordPress sudah menyediakan daftar kelas default untuk tag HTML, jika Anda menggunakan body_class()
atau get_body_class()
fungsinya.
Jika Anda melihat kode sumber dari setiap halaman depan yang dirender di situs WordPress Anda, Anda akan melihat dua kelas CSS yang secara otomatis ditambahkan ke <body>
tag HTML adalah "login" dan "admin-bar".
Anda juga akan melihat bahwa nama-nama kelas CSS hanya ditambahkan ke <body>
tag HTML jika pengguna masuk, jika tidak mereka tidak akan ditambahkan ke <body>
tag HTML .
Jadi jika Anda tidak ingin menggunakan nama kelas WordPress CSS default, Anda dapat menambahkan sendiri dengan sangat mudah.
- Buka tema WordPress Anda yang sedang aktif menggunakan direktori Twitter Bootstrap. Temukan
functions.php
dan buka.
- Tambahkan
add_filter('body_class', 'mbe_body_class');
ke bagian atas file.
- Tambahkan kode berikut, ke bagian bawah file.
Kode:
function mbe_body_class($classes){
if(is_user_logged_in()){
$classes[] = 'body-logged-in';
} else{
$classes[] = 'body-logged-out';
}
return $classes;
}
Sekarang, jika Anda melihat kode sumber dari setiap halaman front-end yang dirender di situs web WordPress Anda, jika pengguna masuk, Anda akan melihat "tubuh-masuk" telah ditambahkan ke <body>
tag HTML , dan jika pengguna logout, Anda akan melihat "body-log-out" telah ditambahkan ke <body>
tag HTML .
Langkah 3
- Tambahkan kode CSS ke tema Anda.
Ini adalah bagian dari kode yang akan memperbaiki tema Anda untuk menampilkan bar admin WordPress, dan navigasi Bootstrap Twitter Anda dengan benar, apakah pengguna masuk atau keluar dari situs web Anda.
- Buka tema WordPress Anda yang sedang aktif menggunakan direktori Twitter Bootstrap. Temukan
functions.php
dan buka.
- Tambahkan
add_action('wp_head', 'mbe_wp_head');
ke bagian atas file.
- Tambahkan kode berikut, ke bagian bawah file.
Kode:
function mbe_wp_head(){
echo '<style>'.PHP_EOL;
echo 'body{ padding-top: 70px !important; }'.PHP_EOL;
// Using custom CSS class name.
echo 'body.body-logged-in .navbar-fixed-top{ top: 28px !important; }'.PHP_EOL;
// Using WordPress default CSS class name.
echo 'body.logged-in .navbar-fixed-top{ top: 28px !important; }'.PHP_EOL;
echo '</style>'.PHP_EOL;
}
Sunting ke kode
add_action('wp_head', 'mbe_wp_head');
function mbe_wp_head(){
echo '<style>'
.PHP_EOL
.'body{ padding-top: 70px !important; }'
.PHP_EOL
.'body.body-logged-in .navbar-fixed-top{ top: 46px !important; }'
.PHP_EOL
.'body.logged-in .navbar-fixed-top{ top: 46px !important; }'
.PHP_EOL
.'@media only screen and (min-width: 783px) {'
.PHP_EOL
.'body{ padding-top: 70px !important; }'
.PHP_EOL
.'body.body-logged-in .navbar-fixed-top{ top: 28px !important; }'
.PHP_EOL
.'body.logged-in .navbar-fixed-top{ top: 28px !important; }'
.PHP_EOL
.'}</style>'
.PHP_EOL;
}
Versi fungsi mbe_wp_head ini mencakup kueri media pertama-seluler, untuk memastikan bahwa tajuk Anda didorong ke bawah dengan jarak yang tepat. Untuk seluler, bilah admin WP tingginya 48px. Setelah breakpoint 783px, bar admin memendek menjadi hanya 28px.
Itu dia. Jika pengguna masuk, Anda sekarang harus memiliki bar admin WordPress di bagian paling atas halaman Anda, segera diikuti oleh navigasi Bootstrapped Twitter Anda. Jika pengguna keluar dari situs WordPress Anda, navigasi Bootstrap Twitter Anda masih harus ditampilkan dengan tepat di bagian atas situs web Anda.