Helló
A problémám a következő. A cikkek bevezetője méretre van vágva. Értendő ezalatt, hogy csak egy adott karakter látszódik. Viszont ha az elválasztásnál ékezetes karakter található, akkor egy kérdőjel jelenik meg helyette? Hol keressem a hibát?
Egyik sablonfájlod nem jó kódolású. Nézd át őket legyen mindegyik utf8 bom nélküli.
Lehet, hogy nem az a gond
Hanem, ha ékezetes a szöveged, és UTF-8 kódolású, akkor egy ékezetes karakter nem 1 byte helyet foglal, hanem 2-3-at, így a substr, és hasonló szöveg manipuláló parancsok nem működnek rendesen (a tökéletes utf8 támogatást PHP6-ra igérik)
Amit tehetsz, hogy megvizsgálod/megkérdezed a szerver üzemeltetőjét, hogy van-e multibyte támogatás a rendszerben.
Amennyiben rendelkezésre áll, akkor a sablon kódjában át kell cserélni
[*]a "substr" függvény hívásokat "mb_substr"-re
[*]az "strpos" függvény hívásokat "mb_strpos"-ra
[*]at "strlen" függvény hívásokat "mb_strlen"-re
[/list]
További multibyte függvény nevek itt
a legegyszerűbb, ha nem karakterekre vágod meg a bevezetőket, hanem szavakra!
Valóban szavakra vágva lenne jó, csak az a bibi, hogy nem tudom hogyan csináljam meg.
Beraksz egy ilyet a functions.php-ba:
$excerpt = explode(' ', get_the_excerpt(), $limit);
if (count($excerpt)>=$limit) {
array_pop($excerpt);
$excerpt = implode(" ",$excerpt).'...';
} else {
$excerpt = implode(" ",$excerpt);
}
$excerpt = preg_replace('`^*]`','',$excerpt);
return $excerpt;
}
function content($limit) {
$content = explode(' ', get_the_content(), $limit);
if (count($content)>=$limit) {
array_pop($content);
$content = implode(" ",$content).'...';
} else {
$content = implode(" ",$content);
}
$content = preg_replace('/[.+]/','', $content);
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
return $content;
}
Aztán meghívod a használat helyén így:
ahol xx persze a szavak számát jelenti.
Legalábbis én ezt használom az egyik oldalamon. Valahol a neten találtam a tutorialt. Nem egy mai kódrészlet, de nekem tökéletesen működik a 3.0.1-el, és sztem elég egyszerű is.
Lehet, hogy van ennél elegánsabb megoldás is, meg gondolom pluginok is, de annyira ez sem bonyolult. :)
a harmadik megoldás, hogy rákeresel itt a fórumban, mert volt róla szó többször is… :unsure: