the_excerpt() i wordpress poster

Der er mulighed for kun at vise et uddrag af en post i WordPress. Men: funktionen the_excerpt() kan ikke rigtigt tilpasses. F.eks. afsluttes de viste uddrag ganske simpelt med […] :-(
Chris J. Davis viser i sin weblog et par funktioner der klarer sagen Custom Excerpts for WordPress, men ikke lige som jeg vil ha’ det.
John Wrana peger på et plugin som laver excerpts med alle mulige parametre: the_excerpt_reloaded, men giver også en idé til et hurtigt hack:
Åben filen functions-formatting.php (ligger i wp-includes mappen), find funktionen wp_trim_excerpt():og tilpas linien
array_push($words, '[...]');

Efter tilpasning ser linien sådan her ud hos mig:
array_push($words, '...(<a href=\''. get_permalink($post_ID).'\'>mere</a>)');

I samme funktion kan man iøvrigt også ændre $excerpt_length = 55; til f.eks. 20 eller 100 eller…

Der er et stort problem ved sådanne simple hack hvor der ændres direkte i koden. Hver gang wordpress opdateres – fra version 2.03 til version 2.04 til version…. – skal man huske at tilpasse de filer man har ændret.

Et tip i denne forbindelse: Gem funktioner du ændrer under et nyt navn (f.eks. det oprindelige navn foranstillet my_ ) i en fil med navnet my_functions.php.
Denne fil gemmes i plugin mappen og har den generelle form
<?php
/*
Plugin Name: My functions
Plugin URI: link til dit plugin
Description: different hacks of wordpress functions
Author: dit navn
Author URI: link til din hjemmeside
Version: versionsnummer
*/
//her indsættes de hackede funktioner under nyt navn
?>

Herefter kan du så aktivere dit “My_functions” plugin under “Plugin” fanebladet og kalde funktionerne fra dine template filer under det/de nye navn(e).

Det skal nok lige nævnes at denne tilgang selvfølgelig er mest hensigtsmæssigt når det handler om funktioner som, som jeg nævner, kaldes fra template filerne.
En anden mulighed er at gemme de pågældende ændrede funktioner i en selvstændig fil sammen oplysning om hvor de oprindeligt findes. Man kan så efter en opdatering manuelt ændre de opdaterede filer (og bliver måske også lettere opmærksom på evt. ændringer i de hackede funktioner).

En fjerde, hjemmestrikket, mulighed (som jeg endte med at anvende):

<?php
function my_excerpt($content, $no_words = 10)
{
$excerpt = "";
$textarray = explode(" ", $content);
for ($i =0; $i <= $no_words; $i++)
{
$excerpt .= $textarray[$i];
$excerpt .= " ";
}
$excerpt .= "...";
echo $excerpt;
}
?>

Denne funktion gør ikke andet end at pille $no_words (standard er her sat til 10) ud af posten og levere dem tilbage efterhængt tre prikker (…)

Jeg kan så kalde funktionen fra min template fil (og funktionen kan evt. placeres samme sted eller i ovennævnte “my_functions” plugin)
<p><?php my_excerpt($post->post_content,20) ?>(<a href='<?php the_permalink() ?>'>mere</a>)</p>
BTW: Hvis man ikke vil have billeder, links osv. i uddraget (det vil man nok ikke) tilføjes en enkelt linie:
<?php
function my_excerpt($content, $no_words = 10)
{
$excerpt = "";
$content = strip_tags($content);
$textarray = explode(" ", $content);
for ($i =0; $i <= $no_words; $i++)
{
$excerpt .= $textarray[$i];
$excerpt .= " ";
}
$excerpt .= "...";
echo $excerpt;
}
?>

Skriv kommentar -

Poster der ligner : programmering - wordpress - -

Indrykket : 6. oktober 2006 - (Læst 4150 gange)

*

Skriv en kommentar

om...

Weblog at bo-k dot dk - blog om blogs, nettet, IT, medier, fri software etc.

cookies

Weblog at bo-k dot dk anvender både 1. parts- og 3. parts cookies. Besøg på Weblog at bo-k dot dk forudsætter at du er indforstået med anvendelsen af cookies.

følg med...

RSS Feed til din nyhedslæser Følg bloggen på twitter

find...

søg i alle indlæg:

kontakt...

kontaktformular

Creative Commons Navngivelse - Ikke-kommerciel - Del på samme vilkår 2.5  Licens Weblog at bo-k dot dk is powered by WordPress etc.

Valid XHTML, Valid CSS,

weblog at bo-k dot dk : http://www.bo-k.dk/weblog/index.php