Hai bisogno di elencare la lista degli ultimi articoli che hai pubblicato su WordPress ma in una pagina del tuo sito esterna dalle pagine di WordPress?
Ecco il codice che fa per te; essendo in PHP funzionerà solo su pagine .php.
Nella seconda riga va messo l’indirizzo di dove si trova il file wp-load.php di WordPress (file che si trova nella cartella principale di WordPress).
Nella terza riga è invece possibile cambiare a piacere il numero degli ultimi articoli che andranno ad essere visualizzati (al momento nel codice tale valore è settato su 5).
Il codice mostrerà gli articoli per data in ordine crescente, ovvero l’articolo più nuovo sarà il primo ad essere mostrato nella lista, poi quello successivo e così via.
Ecco quindi il codice PHP:
<?php
include('wp-load.php');
$recent_posts = wp_get_recent_posts(array(
'numberposts' => 5
));
echo '<ul>';
foreach($recent_posts as $post) {
echo '<li><a href="', get_permalink($post['ID']), '">', $post['post_title'], '</a></li>';
}
echo '</ul>';
?>
7 commenti
salvatore · 02/06/2017 alle 15:47
Ciao Fabrizio,
è proprio il codice che mi serve, ma purtroppo non mi funziona e non capisco come mai, il codice che hai descritto mi sembra abbastanza semplice.
Ho un forum MyBB in http://www.miosito.it e un blog wordpress in http://www.miosito.it/blog
Ho quindi messo nel template del forum il tuo codice modificando la riga in
include(‘http://www.miosito.it/blog/wp-load.php’);
ma ottengo l’errore :
Call to undefined function wp_get_recent_posts()
Sembra che non faccia l’ilclude di wp-load.php
Mi puoi aiutare?
fabrizio.rocca · 02/06/2017 alle 16:03
Ciao Salvatore.
E’ un problema di facile risoluzione, con php bisogna usare collegamenti relativi e non assoluti per collegare le varie risorse (in questo caso per collegare un altro file php che si trova in una diversa cartella del tuo sito).
Nel tuo caso l’include che dovrai andare ad usare è:
include(‘blog/wp-load.php’);
Spero di esserti stato utile.
salvatore · 02/06/2017 alle 16:17
Ho corretto ma purtroppo mi pare che ci sia un errore di più difficile soluzione:
Fatal error: Cannot redeclare is_super_admin() (previously declared in /home/mhd-01/www.miosito.it/htdocs/inc/functions.php:7114) in /home/mhd-01/www.miosito.it/htdocs/blog/wp-includes/capabilities.php on line 715
fabrizio.rocca · 02/06/2017 alle 16:25
Prova a sostituire l’include con questo qui:
require_once(‘blog/wp-load.php’);
Se anche in questo caso ti dà errore vuol dire che sia MyBB e WordPress condividono lo stesso nome di una o più funzioni (di conseguenza vanno in conflitto) e in questo caso è meglio creare un file php a parte (e.s. per il mio sito: https://www.fabriziorocca.it/lastguides.php) ed includerlo con un iframe in MyBB.
salvatore · 02/06/2017 alle 16:51
grazie mille . Ho risolto e mi sono liberato di uno script esterno che leggeva gli RSS e funzionava male.
Ho dovuto usare un file php a parte, richiamato in iframe,
ed ho utilizzato i codici Mycode di MyBB per integrare iframe, altrimenti la protezione impedisce la visualizzazione.
fabrizio.rocca · 02/06/2017 alle 16:57
Lieto di esserti stato utile!
Il mio consiglio ora è quello di usare i css per formattare un po’ quei link (ad esempio cambiare font, colori, ecc..), per integrarlo meglio con il resto della pagina.
Raffaella De Rosa · 05/05/2017 alle 6:25
Bravo Fabrizio,
crei delle pagine utili agli esperti del settore