Come utilizzare le funzioni di WordPress (e dei suoi plugin) in script PHP esterni a WordPress.
In siti web in cui un blog gestito con WordPress è solo una parte dei contenuti, si potrebbe voler includere in pagine diverse da quelle di WordPress un elenco degli ultimi post inseriti o altre informazioni provenienti dal blog.
Per fare ci�² basta includere il file wp-blog-header.php e questo ci metter� a disposizione tutte le funzioni che potremmo normalmente utilizzare in un tema o un plugin per wordpress, comprese le funzioni che aggiungono i plugin stessi.
Per fare un esempio pratico, se la nostra installazione di WordPress fosse all’URL http://terenzani.it/blog/, potremmo includere gli ultimi post del blog nella home page all’URL http://terenzani.it/index.php con questo codice PHP:
<?php require('blog/wp-blog-header.php'); ?>
<h2>Ultime dal Blog</h2>
<ul>
<?php while (have_posts()) : the_post(); ?>
<li>
<?php the_date('d/m/Y') ?> -
<a href="<?php the_permalink() ?>"><? the_title() ?>.</a>
</li>
<?php endwhile ?>
</ul>
O, volendo, filtrare i risultati con la funzione query_posts o get_posts di WordPress.
Secondo lo stesso principio, se avessimo la necessitÃ? di utilizzare file Javascript o CSS generati dinamicamente tramite PHP che utilizzino alcune funzioni di WordPress o di qualche plugin installato, non sarebbe necessario inserire il codice nell’head del tema di Wordpress, ma basterebbe includere il file wp-blog-header.php nello script PHP che genererÃ? il codice CSS o Javascript, per poi includere il file con l’opportuno richiamo (X)HTML.
Nel seguente esempio un file style.php che risiede nella cartella di un tema per WordPress.
<?php
require('../../wp-blog-header.php');
header("Content-Type: text/css");
?>
#element{
background: url(<?php bloginfo(’stylesheet_directory’) ?>/immagini/sfondo.png) repeat-x;
}
Per poi inserire nel head del nostro tema per WordPress:
<link rel="stylesheet" type="text/css" href="<?php bloginfo('stylesheet_directory') ?>/style.php" />
Un esempio con Javascript (il pezzo di DOM è preso dallo script Nifty Corners Cube di Alessando Fulciniti):
<?php
require('../../wp-blog-header.php');
header("Content-Type: text/javascript");
?>
function AddCss(){
niftyCss=true;
var l=CreateEl("link");
l.setAttribute("type","text/css");
l.setAttribute("rel","stylesheet");
l.setAttribute("href","<?php bloginfo(’stylesheet_directory’) ?>/script/niftyCorners.css ?>”);
l.setAttribute(”media”,”screen”);
document.getElementsByTagName(”head”)[0].appendChild(l);
}
E nell’head:
<script type="text/javascript" href="<?php bloginfo('stylesheet_directory') ?>/script/niftycube.php" />
Gli ultimi due esempi sono, appunto, solo a titolo di esempio, in questi casi sarebbe più efficiente passare una variabile nel richiamo HTML senza scomodare WordPress, quindi, ad esempio:
<link rel="stylesheet" type="text/css" href="<?php bloginfo('stylesheet_directory') ?>/style.php?url=” <?php bloginfo(’stylesheet_directory’) ?>“/>
E nel file che genera il foglio di stile:
#element{
background: url(<?php echo $_GET[’url’] ?>/immagini/sfondo.png) repeat-x;
}
tag: PHP, WordPress, wp hacks.
post correlati:
- Feed completi con il tag more in WordPress
- L'architettura a plugin di WordPress
- Eliminare i rel="nofollow" dai link nei commenti di Wordpress
- Plugin per Wordpress più usabili usando l'hook activate_
- GT Post Approval [WordPress Plugin]
- Come leggere feed RSS e Atom con WordPress e la classe PHP MagpieRSS
- Spleender Up: per terminare l'importazione di Spleender

9 October 2006 alle 08:22
[…] Utilizzare WordPress al di fuori di WordPress (tags: wordpress) […]
7 December 2006 alle 20:25
[…] Nel sito in firma tutti i contenuti testuali più lunghi di due righe sono gestiti tramite wordpress (sono Pages, nello specifico) Ad esempio FAQ e guidelines, ma anche il testo che compare a destra nella directory. Problemi: nessuno finora; vantaggi: gestisco tutto tramite l’editor e il database di wp Ho usato la tecnica descritta qui Su Wordpress MU non ci ho ancora messo le mani __________________ SEO? SEM? Cerca tra le risorse a te dedicate, ed inserisci il tuo sito a tema nella Directory ______________________ Geek Notes ::Tech Stuff :: […]
11 February 2007 alle 07:14
GRAZIE!!!!!
26 February 2007 alle 23:58
Non funziona
27 February 2007 alle 09:13
Ciao Marco, sto analizzando i dati che mi hai fornito per trovare una soluzione :D
Scherzi a parte, ho riprovato ora con WordPress 2.1 e a me funziona.
Se lo stai usando per file Javascript o CSS da includere in WordPress, attento che invia un header 404 (file non trovato) e quindi induce il browser ad ignorare il file. Per risolvere, dopo l’inclusione del file wp-blog-header.php, dovresti inviare tu un header appropriato, tipo:
2 March 2007 alle 22:10
Geniale! E bravo Terenzani!
Funge ‘na meraviglia!!! Era da un bel pÃ?² che cercavo una cosa simile.
Grazie mille!!!
26 December 2007 alle 23:18
al di fuori si, ma si pu�² fare su un altro server?
22 February 2008 alle 16:07
Marco:
ti conviene usare gli rss…
25 June 2008 alle 10:21
Scusate la mia ignoranza,
l’ argomento mi sembra interessante ma poco comprensibile ad un neofita come me.
No c’è la possibilità o un link dove poter comprendere passo passo o in modo più chiaro il processo descritto.
Grato anticipatamente per la collaborazione
cordialmente
zoo
18 March 2009 alle 13:02
grazie, interessante, se ho problemi scrivo :)
18 March 2009 alle 13:14
Piccolo problema, ho impostato l’url rewrite dal pannello admin di wordpress e lo script basilare postato ad inizio pagina non funziona più, mentre se reimposto wordpress con gli url classici (?p=44 per esempio) funziona.
Consigli?
31 March 2009 alle 21:24
Non saprei… tra l’altro il post è un po’ vecchio e ormai non seguo più molto gli sviluppi di Wordpress :P
Però se vuoi solo avere un elenco degli utlimi post, ti consiglierei di utilizzare un parser per feed RSS, che dovrebbe essere migliore anche sotto il punto di vista delle performance.
Puoi provare con il solito MagpieRSS, ma ti consiglierei quasi Simplepie: http://simplepie.org/