• User Attivo

    Includere l'ultimo topic di wordpress in una pagina esterna

    Salve a tutti,
    avrei bisogno di una mode che mi permette di includere l'ultimo topic di wordpress (di una determinata categoria) in una pagina esterna al blog. Premetto che blog e pagina esterna si trovano nello stesso server.
    Quindi se wordpress è installato su sito.ext/blog e la pagina esterna è sito.ext/index.php come posso includere in quest'ultima l'ultimo topic di una determinata categoria??
    grazie mille a tutti


  • User Attivo

    ti consiglio di utilizzare il feed rss o atom che wordpress rende disponibile per tutto il blog o anche per le singole categorie o i singoli tag (tuosito.ext/feed, tuosito.ext/categoria/feed, tuosito.ext/tag/feed).

    Nella pagina in cui vuoi includere l'articolo richiami via php una della tante librerie per il parsing dei feed (magpieRSS i simplePie, per esempio) e gli dai in pasto il feed... queste ti restituiscono un'array con i post, prendi solo il primo item e lo pubblichi come preferisci...

    Che ne dici?


  • User Attivo

    MagpieRss tra l'altro è già inclusa in WP... forse riesci a richiamarla con include() nella tua pagina php senza doverla scaricare nuovamente... ma dipende da come è impostato il tuo spazio web, il tuo php.ini ecc...


  • User Attivo

    Io ho provato già a fare una cosa del genere con magiepieRss e funziona.. però in modo strano. ti spiego tempo fa già sollevai questa problematica, in quanto non riuscivo a far richiamare l'immagine contenuto nel topic di wordpress, ma solo il testo. Un utente sul web mi aiutò a risolvere il tutto modificandomi il codice alla meglio:

    <?php 
    require_once('magpierss/rss_fetch.inc'); 
    //Questo è l'URL del feed che andremo a parsare. Nell'esempio c'è il mio :-) 
    $url = "site.ext/blog/category/convegni/feed"; 
    //apre il feed 
    $rss = fetch_rss ($url); 
    //Metto il titolo del feed in una variabile 
    $feedchanneltitle = $rss->channel['title']; 
    //Incominciamo un ciclo per ogni item 
    foreach ($rss->items as $item) { 
     
            $itemlink = $item['link']; 
            $itemtitle = $item['title']; 
            $description = $item['description']; 
            $topic_img = $item['content']['encoded'];
            $img = strstr($topic_img, '<p ');
            $author = $item['author']; 
            $feedurl = $dato['feedurl'] ;
     
            $pubdate = $item['pubdate']; 
            //Formatto la data con un intero UNIX TIMESTAMP (del tipo 1129218794) per poterla maneggiare 
            $pubdate = strtotime ($pubdate); 
            //Formatto la stringa della data secondo i miei gusti 
            $pubdate = date("D, d F Y, G.i", $pubdate); 
     
     
     
            //Ora potrei cominciare a stampare il feed a video 
            echo '<div style="text-align: center;">'; 
            echo '<a class="newProductsHeading" href="'.$itemlink.'">'.$itemtitle.'</a>'; //, '    Data:'.$pubdate.''; 
            //Strip_tags è aggiunto per evitare di mostrare l'HTML eventualmente contenuto nell'articolo 
            echo '<p><font face="Arial, Helvetica, sans-serif"><b>'.strip_tags($description).'</b></font></p>';
            echo $img;
            echo '</div>';
            break;      
    }
    ?>
    

    Io vorrei che lo script rilevasse tutto il contenuto del topic, e si fermasse fin dove è presente il link "continua" quindi non stampandolo tutto per intero.
    Qualcuno un pò più esperto mi saprebbe aiutare?'
    grazie.


  • User Attivo

    ti segnalo inoltre un ulteriore script che ho trovato in giro che funziona seppur in modo limitato:

    <?php
    include('blog/wp-blog-header.php');
    global $post; // questa non so se serve...
    $myposts = get_posts('numberposts=1&category=1');
    foreach($myposts as $post) :
    the_title();
    endforeach; ?>

    non fa altro che prendere solo il titolo non linkato.
    E' possibile implementarlo per far si che prelevi il titolo linkato e il contenuto del post fin quando non trova l'interruzione del link "continua a leggere"?.
    Grazie mille ancora


  • User Attivo

    ho trovato anche questo:
    mrwebmaster.it/php/articoli/integrare-wordpress-sito-preesistente_804.html
    ho provato ma lo script dice che non ci sono nessun post :S


  • User Attivo

    @EthanDane said:

    Io ho provato già a fare una cosa del genere con magiepieRss e funziona.. però in modo strano. ti spiego tempo fa già sollevai questa problematica, in quanto non riuscivo a far richiamare l'immagine contenuto nel topic di wordpress, ma solo il testo.
    [...]
    Io vorrei che lo script rilevasse tutto il contenuto del topic, e si fermasse fin dove è presente il link "continua" quindi non stampandolo tutto per intero.
    Qualcuno un pò più esperto mi saprebbe aiutare?'
    grazie.

    a parte che il link che circonda l'immagine del convegno sul blog è sbagliato...
    il testo lo devi prendere dal tag rss
    content:encoded
    dove c'è la versione completa e con html
    e non da
    <description>
    dove c'è una versione senza html e abbreviata...

    visualizza la versione sorgente del feed rss e vedrai che è più facile capire dove sono i contenuti che ti interessano...