• User Newbie

    Errore cannot redeclare function su script per copiare i post da wordpress

    Ciao a tutti, scartabellando qua e la in rete ho realizzato questo script per visualizzare su homepages esterne a wordpress una preview degli ultimi articoli.
    In realtà però funziona solo se effettui una query per un solo articolo altrimenti la parte di codice che tronca il testo (subito sotto il commento si chiama troncaTesto) crea un errore: Cannot redeclare function.
    Qualcuno sa come risolvere questo problema?
    Di seguito il codice:

    [php]<div class="news" >
    <?php
    // query al database
    $db= @mysql_connect('xxxxxxxx','xxxxxx','xxxxxx');
    mysql_select_db('xxxxxxx' , $db);
    $con = mysql_connect("xxxxxxxxxxx","xxxxxxx","xxxxxxxxx");
    $sel_db = mysql_select_db("xxxxxxxxx", $con);
    $result = mysql_query("select * FROM wp_posts WHERE post_type ='post' and post_status ='publish' ORDER BY id desc limit 1 " ,$db);
    while ($records = mysql_fetch_assoc($result)) {

    // sostituzone caratteri speciali
    $titolone = $records['post_title'];
    $titolone = str_replace("è", "è", $titolone);
    $titolone = str_replace("à", "à", $titolone);
    $titolone = str_replace("à", "ò", $titolone);
    $titolone = str_replace("ì", "ì", $titolone);
    $titolone = str_replace("ù", "ù", $titolone);

    //stampa titolo
    echo "<h4><a href='xxxxxxxxxx.com./index.php?p=". $records['ID'] ."' target='_blank'> ". $titolone ."</a></h4>";
    $calend = $records['post_date'];

    //taglia corregge e stampa data
    $calend = str_replace("-", ".", $calend); echo substr("<span class='data-post'>".$calend,0,34); echo "</span>";

    // funzione che divide la stringa a tot caratteri senza tagliare le parole
    //e aggiungendo in fondo (se continua) ...

    function troncaTesto($testo, $caratteri=500)
    { if (strlen($testo) <= $caratteri) return $testo;
    $nuovo = wordwrap($testo, $caratteri, "|");
    $nuovotesto=explode("|",$nuovo); return $nuovotesto[0]."..."; }

    // stampa testo e img post
    $testo = $records['post_content'];
    $nuovoTesto = troncaTesto($testo, 500);

    // sostituzone caratteri speciali post
    $nuovoTesto = str_replace("è", "è", $nuovoTesto);
    $nuovoTesto = str_replace("à", "à", $nuovoTesto);
    $nuovoTesto = str_replace("à", "ò", $nuovoTesto);
    $nuovoTesto = str_replace("ì", "ì", $nuovoTesto);
    $nuovoTesto = str_replace("ù", "ù", $nuovoTesto);
    $nuovoTesto = str_replace('target="_blank"', 'onclick="window.open(this.href);return false;" onkeypress="window.open(this.href);return false;"', $nuovoTesto);

    echo "<div class='post'>".$nuovoTesto; } ?>
    </div> [/php]


  • Super User

    Prova a spostare il codice

    function troncaTesto($testo, $caratteri=500)
    { if (strlen($testo) <= $caratteri) return $testo;
    $nuovo = wordwrap($testo, $caratteri, "|");
    $nuovotesto=explode("|",$nuovo); return $nuovotesto[0]."..."; }

    al di fuori del ciclo while (prima del ciclo)


  • User Newbie

    Si grazie, ce l'ho fatta, fuori dal while funziona, sia prima che dopo il ciclo.

    Grz.