Support » Kokeneille käyttäjille » Pitkään kaivattu uusi ominaisuus ”wp_body_open”

  • Hei

    5.2 tuo tullessaan wp_body_open -koukun, jonka avulla teemat voivat sisällyttää koodia heti body-elementin alkuun.

    Tätä tai vastaavaa olen kaivannut siitä lähtien kun itse aloin ylläpitää sivustoa.
    Olisi kiva, jos keskusteltaisiin, miten tätä voisi hyödyntää.

    Saisiko tuon avulla:

    1. Itse määritellyn widget-aluuen ja miten.
    2. Shortcode-koodauksen – millä edellytyksin toimii
    3. Oman php-funktion ajaminen

    Auttaisiko tämä luomaan omalla header-osalla helposti vaihtoehtovalikon alkuun.
    Laitoin kopion foorumiinikin.

Esillä 7 vastausta, 1 - 7 (kaikkiaan 7)
  • Tunnelma lässähti totaalisesti kun luin
    https://make.wordpress.org/themes/2019/03/29/addition-of-new-wp_body_open-hook/

    Jos vain metadatalle, en ymmärrä miksi ylipäätänsä lisätty. Script yms. saa lisättyä HEAD-osaan.

    Mutta kun toi toimii kuten muutkin vastaavat eli syntaksilla
    add_action( ’wp_body_open’, ’custom_code’ );
    eihän minun ole pakko noudattaa tuota suositusta. Joten kysymykseni ovat valideja.

    Tosin ei taida onnistua. Laitoin testi html-koodia, mutta se ei tullut esille. Strippaako se pois satunnaisen koodin?

    function custom_code(){
    return ’<div style=”position:fixed; top:150px; left:100px; border:1px solid red;”>Testikoodia</div>’;
    }
    add_action(’wp_body_open’, ’custom_code’ );

    ei tehnyt mitään.

    Return ei tuossa toimi, pitää laittaa ”echo”.

    Tosin tuota wp_body_open ei todellakaan voi käyttää muulle kuin skripteillä – kun laitoin tuon koodin,näytti vain tuon tekstin, ei mitään muuta. Yritin käyttää sitä muuhun tarkoitukseen, mutta kun ei käy, niin ei.

    Minulla menee vähän arpomiseksi, missä tilanteessa WordPressissä pitää laittaa return ja missä echo. Noiden kanssa mennyt aina oppiminen ns. kantapään kautta.

    Oli väliaikainen häiriö. Teksti tuli esille.

    Shortcoden pitää aina palauttaa tuottamansa elementti returnilla, filterissä muokattu asia palautetaan returnilla, mutta actionissa pitää käyttää echoa jos haluaa jotain näkyviin.

    Toi hook on tosiaan tarkoitettu pääasiassa skripteille ynnä muille, jonkun verran on tullut vastaan tilanteita, joissa jokin testausskripti esimerkiksi pitää saada heti bodyn alkuun ja tähän asti siihen ei ole ollut muuta vaihtoehtoa kuin sivupohjan muokkaaminen.

    Kyllä siihen saa laittaa muutakin koodia, siitä vain varoitellaan, että jos siihen ei ole varautunut niin kyllä sillä sotkua saa aikaiseksi. Mutta jos on oma teema ja tietää mitä tekee, niin siitä vaan, anna palaa.

    OK.
    Minulla ei ole ollut yhtään skriptiä, joka olisi tarvinnut laittaa BODY:n alkuun. Kaikki toimivat HEAD-osasta. En edes tiedä, millaiset skriptit ovat sellaisia, mitä pitäisi ajaa HEAD-osan sijaan BODY-osan alussa.

    En ole kyllä kaksinen JavaScriptissä, jonka osaamistaso on minulla kyllä lähes olematon. Paljon huonomi kuin PHP:ssä ja erityisen huono verrattuna CSS-osaamiseen. Www-osaamiseni selkeästi huonoin osa-alue.

    Se. että pitää palauttaa echo avulla rajoittaa käyttöä. Shortcode ei toimi. Ajatus luoda vimpainalue ei taida myöskään onnistua.

    Ajatus oli lähinnä, että siirtäisin valikot tuohon ihan alkuun. Mutta kun ne nyt ovat muualla, on vaikea saada lopputulos halutuksi ja CSS:n muuttamista olisi edessä aika lailla.

    Kun jouduin muuttamaan header.php:tä joka tapauksessa, voisi kaiketi tuon koukun muuallekin sijoittaa kuin ihan BODY-elementin jälkeen. Väärin laitettu HTML kyllä sotkee leiskan ihan perusteellisesti.

    Noita on lähinnä ammattikäytössä olevissa seurantaohjelmistoissa, joilla vakoillaan käyttäjien toimintaa sivuilla, joten ei ihme, jos et ole törmännyt.

    Jo vain toimii shortcode echon kanssa. Kas näin:

    $sisalto = "Tähän jotain sisältöä jossa on [shortcode].";
    echo do_shortcode( $sisalto );

    Mutta jos valikoita yms. haluat tuohon sijoittaa, niin miksi tehdä ne tämän actionin kautta, kun minusta ainakin luontevampi paikka olisi suoraan header.php:ssa.

    Tuollaisesta shortcode-käytöstä en tiennytkään, kiitti.

    Kun kerran on pakko muuttaa header.php:tä, jos valikon muodostusta haluan muuttaa, on toki parempi tehdä se suoraan em. tiedostoon. Ehkä jossakin vaiheessa poistan tablet-laitteilta pudotusvalikot kokonaan ja niille jää kännykkätyyppinen valikko. Google Analytify:n analyysistä näkee, että kaikki iPad/iPhone käyttäjät ovat käyttäneet Safaria, sillä kun laskee iPhone + iPad yhteen ja vertaa Safarin lukuihin, luvut täsmäävät.

Esillä 7 vastausta, 1 - 7 (kaikkiaan 7)
  • You must be logged in to reply to this topic.