Support » Ohjeet ja vianmääritys » template-tags.php: Kirjoittajan nimen poistaminen artikkelista

  • Käytän Striker-teemaa ja artikkelien ylälaidassa on julkaisuajan lisäksi julkaisija.

    Kun tein käännöstä Strikerin lapsiteemaan huomasin, että kyseinen rivi sijaitsee template-tag.php-tiedostossa. Kopioin inc-kansion lapsiteemaan ja editoin template-tags.php:tä niin, että muokkasin seuraavaa kohtaa:

    function striker_posted_on() {
    printf( __( ’Posted on <time class=”entry-date” datetime=”%3$s” pubdate>%4$s</time><span class=”byline”> by <span class=”author vcard”>%7$s</span></span>’, ’striker’ ),

    Poistamalla siitä <span class_”byline”>:n. Lopputulos seuraava:

    function striker_posted_on() {
    printf( __( ’Posted on <time class=”entry-date” datetime=”%3$s” pubdate>%4$s</time>’, ’striker’ ),

    Tallensin. Painelin kymmenkunta kertaa CTRL+F5-yhdistelmää.
    Mitään ei tapahtunut.

    Tulisiko äkkiseltään mieleen, mikä olisi voinut mennä pieleen?

Esillä 5 vastausta, 1 - 5 (kaikkiaan 5)
  • Moderator Sami Keijonen

    (@samikeijonen)

    inc-kansiossa olevat tiedostot eivät ole ns. template-tiedostoja, joten niiden kopioimisella lapsiteemaan ei ole samaa vaikutusta kuin esim. index.php tiedoston kopioimisella. Tässä tapauksessa tiedosto template-tags.php ei korvaa aikuisteeman vastaavaa tiedostoa eikä sillä ole ole mitään vaikutusta.

    Kolme erilaista tapaa onnistuu kyllä.

    1. Kopioi koko funktio sellaisenaan alateeman functions.php tiedostoon ja tee muutokset siellä. Tässä siis alkuperäinen funktio.

    function striker_posted_on() {
    	printf( __( 'Posted on <a href="%1$s" title="%2$s" rel="bookmark"><time class="entry-date" datetime="%3$s" pubdate>%4$s</time></a><span class="byline"> by <span class="author vcard"><a class="url fn n" href="%5$s" title="%6$s" rel="author">%7$s</a></span></span>', 'striker' ),
    		esc_url( get_permalink() ),
    		esc_attr( get_the_time() ),
    		esc_attr( get_the_date( 'c' ) ),
    		esc_html( get_the_date() ),
    		esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
    		esc_attr( sprintf( __( 'View all posts by %s', 'striker' ), get_the_author() ) ),
    		esc_html( get_the_author() )
    	);
    }

    Termi on pluggable-functions mutta en ole itse niiden fani.

    2. Piilota halutut kohdat CSS:llä. Esim. näin alateeman style.css tiedostoon.

    .byline {
       display: none;
    }

    Jos laitat linkin sivuille, niin voin neuvoa tarkemmin.

    3. Käännä kyseinen kohta suomeksi niinkuin haluat. Itse teen käännökset Poedit-ohjelmalla. Tämän huono puoli on se, että menetät kustomoidut käännökset kun päivität teeman.

    Käännöstiedostot fi.po ja fi.mo tulee laittaa aikuisteeman languages-kansioon.

    Thread Starter Elisaliisa

    (@elisaliisa)

    Okei, olin olettanut että minkä tahansa tiedoston kopioiminen aikuisteemasta lapsiteemaan ja muokkaaminen korvaisi aikuisteeman toiminnallisuuden, mutta tämä olikin hyvä tietää.

    Miksi et ole pluggable-functionsin fani?

    CSS-ratkaisu viehättäisi minua eniten, mutta ainakaan suorilta lapsiteeman style.css-tiedostoon kyseisen koodin lisääminen ei tuottanut tulosta. Täällä siis esimerkki:
    http://www.elisaheikura.fi/mita-on-viestinta/

    Käännökset minulla onkin paikallaan ja toki voisin sen vain käännöksestä poistaa, mutta jotenkin kokisin tuon CSS-ratkaisun paremmaksi.

    Yksi kysymys käännöksiin liittyen kuitenkin. Eli kun päivitän teeman, niin riittääkö, että .po ja .mo -tiedostot vain lataa uudelleen aikuisteeman languages kansioon? Tuntuu hölmöltä, ettei niitäkään voi laittaa lapsiteeman languages-kansioon.

    Mutta aika paljon tässä logiikassa on vielä opeteltavaa, ennen kuin asiat alkavat tuntua loogisilta. 🙂

    Kiitos tähänastisesta avusta!

    Moderator Sami Keijonen

    (@samikeijonen)

    Kannattaa katsoa CSS-määreet Chromen työkalulla: hiiren oikealla painikkeella halutun elementin päältä ja sieltä Tarkastele elementtiä. Teemassa on astetta vahvempi määre byline-elementille, joten oikea CSS on tämä.

    .single .byline,
    .group-blog .byline {
       display: none;
    }

    Okei, olin olettanut että minkä tahansa tiedoston kopioiminen aikuisteemasta lapsiteemaan ja muokkaaminen korvaisi aikuisteeman toiminnallisuuden, mutta tämä olikin hyvä tietää.

    Oletus ei valitettavasti ollut oikein:)

    Miksi et ole pluggable-functionsin fani?

    Jos aikuisteemassa on jokin isompi virhe ja se kopiodaan alateemaan, niin ei käyttäjä sitä koskaan hoksaa päivittää alateemastaan. ”hooks” ja ”filters” ovat mielestäni turvallisempi tapa hoitaa muutoksia ja alkuperäisen funktion käyttäytymistä.

    Thread Starter Elisaliisa

    (@elisaliisa)

    Kannattaa katsoa CSS-määreet Chromen työkalulla: hiiren oikealla painikkeella halutun elementin päältä ja sieltä Tarkastele elementtiä.

    Näin olen tehnyt muutaman kerran, mutta olen tämän toiminnallisuuden kanssa vielä melko kömpelö. Piti esimerkiksi raapia MONTA kertaa päätä, ennen kuin tajusin, mistä tuo .single löytyy, enkä tuota .group-blog-viittausta löytänyt vieläkään.

    Vielä yksi(köhän?) kysymys: miksi on parempi käyttää yllä olevaa CSS-pätkää sen sijaan, että käyttäisi edeltävää ja laittaisi perään !important? Molemmat toimivat, mutta yritän oppia ymmärtämisen kautta, miksi jokin toimintatapa on toista parempi. 🙂

    Perehtymislistalle lisäsin juuri kohdan: Selvitä mitä ovat ”hooks” ja ”filters”. Sitä ennen taitaa olla parempi opetella myös PHP:n alkeet. 😀

    Moderator Sami Keijonen

    (@samikeijonen)

    Piti esimerkiksi raapia MONTA kertaa päätä, ennen kuin tajusin, mistä tuo .single löytyy, enkä tuota .group-blog-viittausta löytänyt vieläkään.

    .single löytyy siis body-tagista. .group-blog löytyy body-tagista vain jos sivuillasi on useampi kuin yksi käyttäjä.

    miksi on parempi käyttää yllä olevaa CSS-pätkää sen sijaan, että käyttäisi edeltävää ja laittaisi perään !important?

    Käytä !important-käskyä vain äärimmäisessä hädässä. Kun CSS on järkevästi kirjoitettu, niin kyseistä käskyä ei yksinkertaisesti tarvita. Aikuisteeman CSS:n voi ”yliajaa” kahdella eri tavalla.

    1. Käyttämällä täsmälleen samaa CSS-määrettä alateemassa. Mutta koska se tulee alkuperäisen määreen jälkeen, niin se yliajaa alkuperäisen.

    2. Käytä vahvempaa määrettä. Esim. body .single .byline yliajaa määreen .single .byline.

    Ja vielä viimeiseen asiaan linkkivinkki.

    http://codex.wordpress.org/Plugin_API

Esillä 5 vastausta, 1 - 5 (kaikkiaan 5)
  • The topic ‘template-tags.php: Kirjoittajan nimen poistaminen artikkelista’ is closed to new replies.