WordPress + Last.fm


Asentelin WordPress-blogimoottoria käyttävään sivustooni Last.fm-lisäosan.

Pluginin asennus ei kuitenkaan sujunut kovin helposti. Viimeisin kuuneltu kappale tuli kyllä sivupalkkiin näkyviin aivan oikein, mutta näkyville tuli myös kurja virheilmoitus:

Warning: gzinflate() [function.gzinflate]:
data error in xxxxxx/wp-includes/http.php on line 1787

Meni tovi etsiskellessä ratkaisua. Lopulta se löytyi lisäosan kehittäjän sivuilta.

Wp-includes hakemistosta löytyvää http.php tiedostoa täytyi muokata hieman. Lisäsin tiedostoon seuraavan funktion:

function compatible_gzinflate($gzData) {
  if ( substr($gzData, 0, 3) == "\x1f\x8b\x08" ) {
    $i = 10;
    $flg = ord( substr($gzData, 3, 1) );
    if ( $flg > 0 ) {
      if ( $flg & 4 ) {
        list($xlen) = unpack('v', substr($gzData, $i, 2) );
        $i = $i + 2 + $xlen;
      }
      if ( $flg & 8 )
        $i = strpos($gzData, "\0", $i) + 1;
      if ( $flg & 16 )
        $i = strpos($gzData, "\0", $i) + 1;
      if ( $flg & 2 )
        $i = $i + 2;
    }
    return gzinflate( substr($gzData, $i, -8) );
  } else {
    return false;
  }
}

Lisäksi korvasin funktiossa decompress( $compressed, $length = null ) rivin

$decompressed = gzinflate( $compressed );

rivillä

$decompressed = WP_Http_Encoding::compatible_gzinflate( $compressed );

Sivustoni CSS-tyylitiedostoon lisäsin seuraavat muotoilusäännöt:

#sidebar .lastfm-item {
  display: block;
}

#sidebar .lastfm-timestamp {
  display: block;
  font-size: 0.6em;
}

Vaivannäön tulos näkyy tuossa oikeassa reunassa Twitter-merkintöjen alla. Eikös ollutkin helppoa?

,