Problemă cu bara de administrare și antetul fix în WordPress

19 dec. 2011, 21:01:11
Vizualizări: 36.5K
Voturi: 13

Am stilizat antetul site-ului meu să aibă o poziție fixă în partea de sus. Când sunt autentificat în WordPress, bara de navigare pentru administrare WordPress acoperă secțiunea superioară a antetului meu, făcând imposibil accesul la navigarea din partea de sus. Aș dori ca bara de administrare WordPress să împingă navigarea mea mai jos, astfel încât ambele să fie vizibile. Știe cineva o soluție pentru a rezolva această problemă?

Un exemplu al problemei mele poate fi găsit la... www.nickriversdesign.com/dev

0
Toate răspunsurile la întrebare 9
5
30

Încearcă să adaugi acest cod în fișierul tău CSS:

body.admin-bar #branding-wrap{top: 28px;} 
body.admin-bar #wrapper{margin-top: 145px;}

Declarația body.admin-bar de la început va asigura că aceste stiluri se aplică doar când bara de administrare este vizibilă.

20 dec. 2011 01:05:06
Comentarii

body.admin-bar este selectorul corect (și acesta este răspunsul corect). Răspunsul lui Zach L afectează toți utilizatorii autentificați, dar doar utilizatorii autentificați cu permisiuni de editare a conținutului au bara de administrare vizibilă și au nevoie ca antetul să fie mutat mai jos pe pagină.

Chris Burgess Chris Burgess
17 iul. 2012 14:06:28

interesant... nu am avut niciodată o configurare cu utilizatori fără aceste permisiuni. Presupun că este la fel ca și când în setările utilizatorului aceștia dezactivează bara de administrare.

Zach Lysobey Zach Lysobey
17 iul. 2012 18:43:39

Notă de versiune: .admin-bar nu mai apare în WordPress 4. Acum se numește #wpadminbar și nu încadrează conținutul, prin urmare soluția de mai sus nu poate fi aplicată pentru versiunea 4+

Raptor Raptor
4 feb. 2016 06:18:22

Este disponibilă și o versiune SASS, împreună cu explicații pentru rezoluțiile mobile/desktop (site-uri responsive) și abordarea mobile-first: https://www.sitepoint.com/getting-sticky-headers-wordpress-admin-bar-behave/

Minister Minister
4 nov. 2018 13:55:14

Cum va funcționa asta când utilizatorul derulează în jos? Atunci bara de navigare wp va rămâne blocată "aproape în vârful ecranului", ceea ce arată destul de ciudat

FooBar FooBar
26 sept. 2019 17:15:12
1
11

în CSS-ul tău poți încerca ceva de genul: body.logged-in{margin-top:20px;} sau dacă nu funcționează, poți folosi alt cod care utilizează clasa .logged-in

19 dec. 2011 23:04:20
Comentarii

Aceasta (incorect) afectează toți utilizatorii autentificați. Luați în considerare răspunsul lui Brent în schimb.

Chris Burgess Chris Burgess
17 iul. 2012 14:06:51
2

Încearcă acest lucru pentru WordPress 4+. Verifică dacă bara de administrare este prezentă și, dacă da, mută antetul fixat puțin mai jos pentru a compensa.

    //remediere pentru bara de administrare
    if ($('#wpadminbar')[0])
        $('.site-header').css('top', '32px')
13 dec. 2016 17:43:24
Comentarii

Te rog să [editezi] răspunsul tău și să adaugi o explicație: de ce ar putea rezolva problema?

fuxia fuxia
13 dec. 2016 18:20:43

Schimbarea lui '.site-header' în 'body' a funcționat în cazul meu.

Kaji Kaji
10 oct. 2017 02:33:26
2

Acest lucru funcționează de asemenea

body.logged-in > header {  
    margin-top: 32px;  
}  
18 apr. 2020 14:57:13
Comentarii

Te rog să încerci să adaugi o mică explicație - asta va permite autorului întrebării și viitorilor utilizatori să învețe și să înțeleagă ce se întâmplă, nu doar să fie un loc unde oamenii își fac codul scris de alții. Mulțumesc pentru răspuns.

Tony Djukic Tony Djukic
18 apr. 2020 20:37:26

Selectorul părinte nu este necesar. body.logged-in header funcționează perfect.

Akshay K Nair Akshay K Nair
2 feb. 2022 08:44:01
2

Am citit toate răspunsurile, dar nu am găsit acesta:

De ce să nu folosești funcția wp:

is_admin_bar_showing()

exemplu din fișierul header.php al temei

<nav class="nav-default" style="<?php echo is_admin_bar_showing() ? 'top: 32px' : ''; ?>">
28 mai 2022 14:11:13
Comentarii

Căutam de ceva timp o soluție pentru a ajusta bara de administrare WordPress cu navbar-ul fixed-top din Bootstrap 5. Aceasta a fost cea mai bună soluție care a funcționat perfect pentru mine fără a adăuga prea mult cod suplimentar. Mulțumesc!

Mike Quade Mike Quade
17 nov. 2023 14:14:04

În cazul meu, am adăugat position: relative în loc de top: 32px pentru a rezolva problema.

Raptor Raptor
14 iun. 2024 08:59:08
0

Cred că pe dispozitivele cu lățimi mai mici, wpadminbar nu este poziționat fix. Așadar, dacă derulezi documentul pe un smartphone, bara de administrare va urmări scroll-ul și nu va rămâne în partea de sus a ferestrei. Ținând cont de acest aspect, de ce să nu adăugăm niște JavaScript în subsolul temei tale, imediat după apelul wp_head(). În acest fel, putem ținti lățimea dispozitivului și dacă documentul are sau nu adminbar. Apoi, pur și simplu creăm niște reguli CSS și le adăugăm în head-ul documentului - ca mai jos!

<script>
( function(e) {
    var ab = document.getElementById( 'wpadminbar' );
    if ( typeof( ab ) === 'object' && window.innerWidth >= 610 ) {
        var abh = ab.offsetHeight || ab.clientHeight || ab.scrollHeight;
        var style = document.createElement( 'style' );
        style.id = 'adminbar_main_nav_controle_rules';
        document.getElementsByTagName( 'head' )[0].appendChild( style );
        var rules = document.createTextNode( 'body.admin-bar .main-navigation.fixed { margin-top: ' + abh + 'px !important; }' );
        style.appendChild( rules );
        console.debug( 'spațiul wpadmibar este acoperit' );
    }
})();
</script>

Presupunând că navigația ta are clasa 'main-navigation' și la scroll adaugi o altă clasă numită 'fixed'. Schimbă CSS-ul pentru a ținti panoul tău de navigație prin înlocuirea lui 'body.admin-bar .main-navigation.fixed' cu orice ai dori să folosești pentru a ținti al tău.

Poate fi îmbunătățit, de exemplu, verificând dacă bara de administrare este fixă sau nu, dar pentru moment, sper că te va ajuta.

16 dec. 2015 22:08:45
0

Tocmai am folosit acest CSS.

body.admin-bar #main-header  {
padding-top: 32px }
29 oct. 2019 19:02:58
0
-1

Încearcă asta, funcționează perfect

$(document).ready(function() {
    if ($('#wpadminbar')[0]) {
        $('header').css('top', '32px')
    }
});
14 feb. 2019 10:36:22
0
-2

afișează bara de navigare superioară

.navbar-fixed-top {
    border-width: 0 0 1px;  /* grosimea bordurii - 0 sus, 0 dreapta, 1px jos */
    padding: 0;             /* fără padding */
    position: relative!     /* poziționare relativă (important) */
}
30 apr. 2019 07:35:55