Support » Lisäosat ja muokkaukset » Tekstien lyhennys

  • Resolved tapiohuuhaa

    (@tapiohuuhaa)


    https://wordpress.org/support/topic/shortening-titles/
    olen yrittänyt kysyä, mutta en ole saanut vastausta.
    Tarvitisisin Js-koodilla katkaisun, koska CSS-katkaisua ei voi käyttää, koska teksti menee usealle riville.

    Linkittämällä sivulla lyhentäisin JavaScriptillä ”Viimeisin viesti” sarakkeessa esim. tekstin ”Vastaa aiheeseen: Vanhoja Ilta Sanomien viikonlopun ristikoita”

    The page I need help with: [log in to see the link]

Esillä 5 vastausta, 1 - 5 (kaikkiaan 5)
  • Toi sun koodisi oli sinne päin, mutta siitä puuttui pari olennaista kohtaa. Lyhensit kyllä merkkijonot, mutta sitä lyhennettyä merkkijonoa ei missään vaiheessa sijoiteta takaisin sivulle. str.slice() ei muokkaa sitä olemassaolevaa merkkijonoa, vaan tekee siitä uuden lyhennetyn kopion.

    jQueryllä voi olla vähän helpompi tehdä:

    jQuery(document).ready(function($){
        $('.bsp_freshness_display_title').each(function() {
            this.innerHTML = this.innerHTML.slice(0,40) + '...';
        })
    })

    Tuolla pitäisi lyhentyä nuo Viimeisin viesti -sarakkeen otsikot 40 merkkiin.

    jQuery on tällaisessa ilmaisuvoimaista: ensimmäinen rivi kertoo, että tämä tehdään siinä vaiheessa kun sivu on valmis, toinen rivi hakee kaikki elementit, joiden luokka on bsp_freshness_display_title ja tekee jokaiselle jotain ja kolmas rivi asettaa elementin sisällöksi (this.innerHTML) 40 ensimmäistä merkkiä sisällöstä ja kolme pistettä perään.

    Jos haluat tehdä saman jollekin toiselle kohteelle, kopioit vain tämän:

        $('.bsp_freshness_display_title').each(function() {
            this.innerHTML = this.innerHTML.slice(0,40) + '...';
        })

    vaihdat tuohon halutun elementin tunnisteen ja laitat sitten edellisen perään tuohon uloimman funktion sisälle. Tunniste pitää katsoa niin tarkaksi, että sillä löytyy juuri se oikea elementti: sulla oli omassa koodissasi bbp-forum-freshness, mutta se on liian ylhäällä, pitää löytää sellainen tunniste, jolla merkityn tagin sisällä on juuri se teksti, jota haluaa muuttaa, eikä muuta.

    • Tätä vastausta muokkasi 3 kuukautta, 2 viikkoa sitten  Mikko Saari.

    Toimii. Kiitos. Kuten kerroin, en ole mikään JavaScript-expertti. Koodaan kaiken mieluummin PHP:llä,HTML:llä ja CSS:ssä, mutta aina ne keinot eivät riitä.

    Toimii selostetulla tavalla, mistä johtuu se, että näyttää pienen hetken tekstin kokopitkänä. Tuskin siitä kenellekään haittaa on.

    [PS. Miksi WordPress.org sivuilta on poistettu näkyvistä linkki kommentin numeroon? Jos haluaa viitata tiettyyn kommenttiin, pitää katsoa lähdekoodia.]

    • Tätä vastausta muokkasi 3 kuukautta, 2 viikkoa sitten  tapiohuuhaa.

    Kokopitkänä näkyy hetken, koska teksti on sivulla kokopitkänä. Vasta kun sivu on kokonaan ladattu, JavaScript suoritetaan ja teksti lyhenee.

    Kommentin aikaleima on linkki kyseiseen kommenttiin, siitä sen saa penkomatta lähdekoodia.

    Skripti kaipaisi pienen viilauksen. Pitäisi ohittaa tekstit, jotka jäävät alle 40 kirjaimen.
    Aihelistausksessa voisi otsikoita lyhentää, mutta näyttää hassulta, jos tulee pisteet perään, vaikka ei tarvittaisi.

    kokeilin eteen if(this.innerHTML.width >40),
    mutta tuo ei toimi.

    pitää olla length eikä width, sori.

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