Hamppu.net
 Etusivu > MS-potilas > wordpress  

Viestit, joissa avainsanana ’wordpress’

Blogi aikajärjestyksessä (ei käänteisessä)

maanantai 15. marraskuuta 2010

Blogeissa uusin merkintä on yleensä ensimmäisenä sivun ylä­reunassa, vanhemmat merkinnät ovat sen alapuolella ja blogin ensimmäinen merkintä on viimeisenä. Tämä käänteinen aikajärjestys on joskus häirinnyt itseäni, kun olen halunnut lukea jonkin blogin tekstit alusta loppuun julkaisujärjestyksessä.

Muokkasin MS-potilas-blogia siten, että merkinnät on mahdollista näyttää julkaisujärjestyksessä, jolloin ensimmäisenä näkyy vanhin merkintä ja merkinnät etenevät normaalissa aikajärjestyksessä, uusin merkintä on viimeisenä. Lisäsin linkin tähän käänteiseen järjestykseen blogin oikeaan sivupalkkiin arkistojen jälkeen, linkki on tämän näköinen:

Kaikki merkinnät
aikajärjestyksessä

Klikkaa linkkiä, ja voit lukea koko tarinan alusta tähän päivään asti aikajärjestyksessä.

Hakusivun otsikon korjaaminen

sunnuntai 16. elokuuta 2009

Jokin aika sitten päivitin blogin ohjelmiston versioon 2.8. Samalla lisäsin hakukenttään alt+i -pikavalinnan, minkä testauksen yhteydessä huomasin, että hakusivun otsikko näkyy virheellisesti englanniksi.

Esimerkiksi, jos hain hakusanalla elokuva, oli hakutulossivun otsikkona ”Search Results elokuva – MS-potilas”. Käyttämälläni käännöspaketilla sen olisi pitänyt olla ”Hakutulokset elokuva – MS-potilas”. Tarkistin kielitiedoston, mutta se oli kunnossa.

Pienen etsinnän jälkeen vika löytyi tiedostosta general-template.php (hakemistossa wp-includes). Sama virhe on edelleen versiossa 2.8.4, mihin päivitin blogin ohjelmiston tänään, joten julkaisen tässä korjauksen.

Etsi general-template.php-tiedostosta rivi (versiossa 2.8.4 rivi 500):

 		$title = sprintf(__('Search Results %1$s %2$s'), $t_sep, strip_tags($search));

Muokkaa siitä seuraavanlainen:

		$title = sprintf(__('Search Results').' %1$s %2$s', $t_sep, strip_tags($search));

Yhteydenottolomake

tiistai 23. kesäkuuta 2009

Valitsin blogini yhteydenottolomakkeeksi lisäosan WP Contact Form III. Siinä estetään yhteydenottolomakkeella roskapostitus yksin­kertaisella kysymyksellä tyyliin ”2+2 = ?”.

Kysymystä (ja odotettua vastausta) voi muuttaa lisäosan asetuksista, jolloin sen todennäköisyys, että joku jaksaisi viilata jotain roskapostitusskriptiä juuri sinun yhteydenottolomakkeellesi, muuttuu lähes olemattomaksi. Itse päätin kuitenkin tehdä kysymyksestä muuttuvan. Seuraavassa ohjeet, miten sen tein.

Avaa wp-contactform-iii.php (tai vanhemmissa lisäosan versioissa wp-contactform.php). Etsi funktio:

function wpcf_is_challenge($input) {
...
	return $is_challenge;
}

Kommentoi tämä funktio ja lisää sen eteen kaksi funktiota niin, että lopputulos näyttää seuraavalta:

// mspotilas
function wpcf_get_question() 
{
    if($_POST[wpcf_session] == '') {
        srand(time());
        $random = (17 + ((rand()%9)) * 16 + (rand()%9)) ^ 0x96;
        $_POST[wpcf_session] = sprintf("%d", $random);
    }
 
    $random = intval($_POST['wpcf_session']) ^ 0x96;
    $n1 = $random % 16;
    $n2 = intval($random / 16);
    return sprintf("%d + %d =", $n1, $n2);
}
 
// mspotilas
function wpcf_is_challenge($input) {
    $random = intval($_POST['wpcf_session']) ^ 0x96;
    $n1 = $random % 16;
    $n2 = intval($random / 16);
    if($n1 + $n2 == intval($input))
        return true;
    return false;
}
/* commented out mspotilas
function wpcf_is_challenge($input) {
	$is_challenge = false;
	$answer = get_option('wpcf_answer');
	$answer = htmlentities(stripslashes(attribute_escape($answer)));
	if($input == $answer) {
		$is_challenge = true;
	}
	return $is_challenge;
}
*/

Funktio wpcf_get_question luo kysymyksen muotoa ”x + y =”, joissa x ja y ovat numeroita välillä 1–9.

Etsi seuraavaksi rivi, joka alkaa:

    $question =

vaihda sen tilalle rivi:

    $question = wpcf_get_question();//htmlentities(stripslashes(get_option('wpcf_question')));

Etsi rivi:

	<input type="hidden" class="hiddenfield" name="wpcf_stage" value="process" />

(tai vanhemmassa versiossa:)

<input type="hidden" name="wpcf_stage" value="process" />

lisää perään rivi:

	<input type="hidden" class="hiddenfield" name="wpcf_session" value="' . $_POST[wpcf_session] . '" />

Ja sitten testaamaan. :)

WordPressin versio päivitetty 2.8:aan

Päivitin viime viikonloppuna WordPressin ohjelmiston 10.6.2009 julkaistuun versioon 2.8. Samalla päivitin lisäosat uusimpiin versioihinsa. Käyttämäni Simple CAPTCHA-lisäosa muuttui niin, että varmistuskuva näytetään nyt hieman eri paikassa kommentin­syöttö­lomakkeella. Muita lukijoille näkyviä muutoksia päivitykset eivät tuoneet mukanaan.

Huomasin samalla, että WP Contact Form III -lisäosan kehitys on lopetettu, mistä sain kipinän tämän merkinnän kirjoittamiseen.

Ohjelmistopäivityksen yhteydessä lisäsin hakukentälle pika­valinta­näppäimen i, eli useilla selaimilla hakukentän saa aktiiviseksi näppäinyhdistelmällä ALT+i.

WordPress: Default-teema ja näkymättömät luetelma­merkit Internet Explorerissa

lauantai 30. elokuuta 2008

WordPressin oletus- eli default-teemassa (ns. Kubrick-teema) luetelmamerkit (bullet-merkit eli luetelmapallot :) ) on tyylitelty css-tiedostossa sellaisia valitsimia käyttäen, jotka eivät toimi Internet Explorerissa.

Esimerkki luettelosta luetelmamerkkeineen:

  • asia numero yksi
  • toinen juttu
  • kolmas listan asia

Merkintöjen luetelmamerkit määritellään default-tyylin (muokkaa­mattomassa) style.css-tiedostossa seuraavasti:

html>body .entry ul {
	margin-left: 0px;
	padding: 0 0 0 30px;
	list-style: none;
	padding-left: 10px;
	text-indent: -10px;
	}
 
- - -
 
.entry ul li:before, #sidebar ul ul li:before {
	content: "\00BB \0020";
	}

IE tukehtuu :before-valitsimeen ja luetelmamerkit jäävät ainakin uudemmilla versioilla kokonaan näyttämättä, vaikka css-tiedostosta tämä optimistinen lausunto löytyykin:

/* Begin Lists
 
	Special stylized non-IE bullets
	Do not work in Internet Explorer, which merely default to normal bullets. */

Koska käytän itse pääosin Linuxia ja Firefox-selainta enkä luonnollisestikaan voinut arvata, että WordPressin oletusteemassa voisi olla tällainen ”ominaisuus”, olin käyttänyt merkinnöissä luetteloita ja luetelmamerkkejä jo monessa paikkaa. Potilas­kertomus­merkintää kasatessani tulin testanneeksi blogia hieman enemmän myös Internet Explorerilla (toki aluksi olin testannut, mutta silloin merkintöjä ja luetelmamerkkejä ei vielä juurikaan ollut) ja huomasin tämän ongelman.

Yritin etsiä netistä ratkaisua, jolla nämä ”bulletit” saisi näkymään kaikilla yleisimmillä selaimilla. Yllättävää kyllä, vaikka ongelma on jo ainakin yli vuoden vanha ja ollut olemassa WordPressin 2.0 -versiosta lähtien, ei siihen vieläkään löytynyt itseäni tyydyttävää ratkaisua. Joten sellainen piti itse tehdä.

Oletusluetelmamerkit merkintöihin

Ratkaisussani sivupalkin bulletit saivat jäädä ennalleen. Näin ollen ne näkyvät oikein mm. Firefoxilla ja silti Internet Explorerillakin sivupalkki on siisti, vaikkakin ilman tyyliteltyjä »-merkkejä. Merkinnöissä olevat luetelmamerkit muutetaan tyylitellystä »-merkistä oletusmerkkiin •.

Avaa (esimerkiksi teemojen muokkauksen kautta) tiedosto ./wp-content/themes/default/style.css ja etsi kohta:

html>body .entry ul {
	margin-left: 0px;
	padding: 0 0 0 30px;
	list-style: none;
	padding-left: 10px;
	text-indent: -10px;
	}

Korvaa se seuraavalla:

.entry ul {
	padding-left: 10px;
	margin-left: 0px;
}

Etsi:

.entry ul li:before, #sidebar ul ul li:before {
	content: "\00BB \0020";
	}

ja korvaa seuraavalla:

#sidebar ul ul li:before {
	content: "\00BB \0020";
	}

Päivitä tiedosto muutoksien jälkeen palvelimelle.

Pahoittelen blogini luettelojen aiempaa mahdollista huonoa luettavuutta Internet Explorer -selaimilla. :) Nyt luettelot ovat siistit luetelmamerkkeineen.

WordPress: Sivujen otsikot ojennukseen

perjantai 25. heinäkuuta 2008

Sivujen otsikot (<title>) ovat WordPressissä oletuksena eri tyyppisille sivuille muotoa:

Kotisivu: Blogin nimi
Arkistosivut: Blogin nimi » Arkiston nimi/Aihe/Avainsana
Yksittäiset merkinnät: Blogin nimi » Arkisto » Merkinnän otsikko

Miksi ihmeessä merkintöjen otsikoissa on sana Arkisto (Blog Archive)? Ilmeisesti tässä haetaan polkumaista rakennetta »-merkkien kanssa, mutta se ei mielestäni toimi dokumentin otsikossa. Tärkein/yksilöivä asia tulisi olla otsikon alussa, jotta otsikko on helppo erottaa selaimen sivujen korvakkeista tai käyttöjärjestelmän tehtäväpalkista. WordPressin oletusotsikot voivat lisäksi tuottaa ongelmia hakukoneiden kanssa.

Oma tavoitteeni:
Kotisivu: Blogin nimi (ei siis muutosta)
Arkistosivut: Arkisto: Arkiston nimi/Aihe/Avainsana – Blogin nimi
Yksittäiset merkinnät: Merkinnän otsikko – Blogin nimi

Teeman tiedostoja aiemmin selatessani ja muokatessani olin pannut merkille, että otsikko määritellään teeman header.php-tiedostossa. Google löysi valmiitkin ohjeet räätälöintiin MeganMcDermott.com:n sivulta Fixing my Wordpress Title Tags. Pienellä soveltamisella sain hänen esittämästään ratkaisusta muokattua haluamani loppu­tuloksen.

Valitse ohjausnäkymässä Ulkoasu, sieltä Teemojen muokkaus ja tiedosto header.php. Etsi koodi, joka alkaa <title> ja päättyy </title>, esim.

<title><?php bloginfo('name'); ?> <?php if ( is_single() ) { ?> &raquo; Blog Archive <?php } ?> <?php wp_title(); ?></title>

Tässä blogissa edellä oleva kohta on header.php:ssa muutettu seuraavanlaiseksi:

<title>
<?php if ( is_home() ) { ?><?php bloginfo('name'); ?>
<?php } elseif ( is_archive() ) { ?>Arkisto: <?php wp_title($sep = ''); ?> - <?php bloginfo('name'); ?>
<?php } else { ?><?php wp_title($sep = ''); ?> - <?php bloginfo('name'); ?>
<?php } ?>
</title>

Päivitä tiedosto (Update File) -painike tallentaa tehdyn muutoksen. Kuvaamani muutos onnistuu sellaisenaan ainakin WordPressin versioissa 2.5 ja 2.6, mutta luultavasti myös vanhemmissa versiossa.

Koodausvapaa vaihtoehto saman lopputuloksen saavuttamiseksi on käyttää jotain pluginia, esimerkiksi HeadSpace 2 tai SEO Title tag.

WordPress 2.6: Revisioiden tallennus pois päältä

perjantai 18. heinäkuuta 2008

Kirjoitettuani vain pari merkintää sen jälkeen, kun olin päivittänyt WordPressin versioon 2.6, huomasin merkintöjen id-numeroiden kasvaneen huomattavasti. Pieni vilkaisu tietokantaan olikin melkoinen hämmästys, sillä tietueita merkintöjen taulussa oli useita kymmeniä.

Asiaa tarkemmin tutkittuani selvisi syy: WP 2.6:n uusi ominaisuus, jossa jokaisesta muokkausvaiheenkin tallennusversiosta jätetään tietokantaan kopio eli revisio, wikin tapaan. Tässä yhden käyttäjän blogissa ominaisuus on turha ja vie turhaan tieto­kanta­tilaa.

Ominaisuuden saa pois päältä lisäämällä wp-config.php-tiedostoon rivin:

define('WP_POST_REVISIONS', false);

Myös automaattitallennuksen yhteydessä tallennetaan postista revisio, vaikka edellinen asetus olisikin asetettu arvoon ”false”. Vähentääksesi näitä yksittäisiä automaattitallennusrevisioita, voit nostaa automaattitallennuksen intervallia ylöspäin oletusarvosta 60 sekuntia lisäämällä wp-config.php-tiedostoon rivi:

define('AUTOSAVE_INTERVAL', 3600); // sekunteina. 3600=1 tunti

Jo mahdollisesti luodut revisiot saa siivottua tietokannasta esim. phpMyAdmin-ohjelmalla seuraavalla sql-lauseella:

DELETE FROM wp_posts WHERE post_type = 'revision';

Näihin muokkauksiin tarvitut tiedot löytyivät WordPressin foorumilta, ja myös kätevästi koottuna Lester Chanin blogi­merkinnästä How To Turn Off Post Revision In WordPress 2.6.

WordPress: Lainausmerkit suomen kielen mukaisiksi ja miinukset miinuksina

keskiviikko 16. heinäkuuta 2008

Tässä merkinnässä kuvatut mukautukset toimivat ainakin WordPressin versioissa 2.5(.1) ja 2.6, muita versioita en ole testannut. Mukautukset voi tehdä blogiinsa vain, jos omaa pääsyn ja oikeudet WordPress-asennuksen tiedostoihin palvelinkoneella, jolla blogi sijaitsee.

Lainausmerkit väärin vinksallaan

WordPress korvaa automaattisesti merkintöihin ja kommentteihin kirjoitetut suorat lainausmerkit kaarevilla siten, että aloitusmerkki ja lopetusmerkki ovat ”erikätisiä” seuraavasti: “ ja ”. Suomen kielen normaalit lainausmerkit kuitenkin ovat kaarevat kokolainausmerkit siten, että aloitus- ja lopetusmerkki ovat samanlaiset, joten tämä epäkohta piti tietysti korjata. :)

Muokkaus tehdään tiedostoon [wordpressin hakemisto]/wp-includes/formatting.php. Etsi tiedostosta rivi:

$dynamic_replacements = array('&#8217;$1','$1&#8216;', '$1&#8243;', '$1&#8242;', '$1&#8217;$2', '$1&#8220;$2', '&#8221;$1', '&#8217;$1', '$1&#215;$2');

ja korvaa se rivillä:

$dynamic_replacements = array('&#8217;$1','$1&#8217;', '$1&#8243;', '$1&#8242;', '$1&#8217;$2', '$1&#8221;$2', '&#8221;$1', '&#8217;$1', '$1&#215;$2');

(lainausmerkeistä suomen kielessä: http://www.cs.tut.fi/~jkorpela/suomi/lain.html)

Kaksi miinusta muuttuu ajatusviivaksi?

Myös tällainen ominaisuus löytyy WordPressistä, eli merkintöihin ja kommentteihin kirjoitetut peräkkäiset kaksi miinusta muuttuvat ajatus­viivaksi (–) tai pitkäksi yhdys­viivaksi (—). Tämä voi aiheuttaa sekaannuksia, jos blogissa käsitellään esimerkiksi ohjelma­koodia, jossa esiintyy näitä miinus­merkkejä. Jos haluat tästä ominaisuudesta eroon, etsi samasta formatting.php-tiedostosta rivit:

$static_characters = array_merge(array('---', ' -- ', '--', 'xn&#8211;', '...', '``', '\'s', '\'\'', ' (tm)'), $cockney);
$static_replacements = array_merge(array('&#8212;', ' &#8212; ', '&#8211;', 'xn--', '&#8230;', '&#8220;', '&#8217;s', '&#8221;', ' &#8482;'), $cockneyreplace);

ja korvaa ne seuraavasti (taulukoista toinen ja kolmas alkio kommentteihin):

$static_characters = array_merge(array('---', /*' -- ', '--',*/ 'xn&#8211;', '...', '``', '\'s', '\'\'', ' (tm)'), $cockney);
$static_replacements = array_merge(array('&#8212;', /*' &#8212; ', '&#8211;',*/ 'xn--', '&#8230;', '&#8220;', '&#8217;s', '&#8221;', ' &#8482;'), $cockneyreplace);

Jos haluat estää kolmen miinusmerkin muuttumisen pitkäksi yhdysviivaksi (—), kommentoi myös ensimmäinen alkio, seuraavasti:

$static_characters = array_merge(array(/*'---', ' -- ', '--',*/ 'xn&#8211;', '...', '``', '\'s', '\'\'', ' (tm)'), $cockney);
$static_replacements = array_merge(array(/*'&#8212;', ' &#8212; ', '&#8211;',*/ 'xn--', '&#8230;', '&#8220;', '&#8217;s', '&#8221;', ' &#8482;'), $cockneyreplace);

(vaakaviivamerkeistä suomen kielessä: http://www.cs.tut.fi/~jkorpela/suomi/viivat.html)

Ei tullut takkia, tuli liivit – blogin räätälöintiä

keskiviikko 16. heinäkuuta 2008

Tämä blogi on toteutettu WordPress-ohjelmistoa käyttäen. Olen tehnyt ohjelmistoon, lisäosiin ja ulkoasuun (teemaan) tiettyjä mukautuksia, joista voi olla hyötyä muillekin WordPressin käyttäjille.
Lue koko merkintä »