Utilizzare WordPress al di fuori di WordPress

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;
}
Hai trovato interessante questo articolo? Se vuoi, inscrivendoti alla newsletter, puoi ricevere una notifica ogni volta che c'è un nuovo articolo da leggere, oppure puoi sottoscrivere il feed RSS. Se non sai cos'è puoi leggere: Cos'è e come si legge un feed.
di Francesco Terenzani, 4 September 2006

post<li>

tag: , , .

post correlati:


Commenti (12). Commenti in formato RSS

  1. Pingback: Skylog » Blog Archive » links for 2006-10-09.

    […] Utilizzare WordPress al di fuori di WordPress (tags: wordpress) […]

  2. Pingback: |► [wordpress] gestire un sito.

    […] 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 :: […]

  3. alberto scrive:

    GRAZIE!!!!!

  4. Marco scrive:

    Non funziona

  5. Francesco Terenzani scrive:

    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:

    <?php
    // Inclusione file
    header("HTTP/1.1 200 OK");
    ...
  6. Marco scrive:

    Geniale! E bravo Terenzani!
    Funge ‘na meraviglia!!! Era da un bel pÃ?² che cercavo una cosa simile.

    Grazie mille!!!

  7. Marco scrive:

    al di fuori si, ma si pu�² fare su un altro server?

  8. M4iden_Rul3z scrive:

    Marco:

    ti conviene usare gli rss…

  9. zoo scrive:

    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

  10. k8 scrive:

    grazie, interessante, se ho problemi scrivo :)

  11. k8 scrive:

    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?

  12. Fra_T scrive:

    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/

Scrivi un commento

XHTML: Puoi usare questi tag XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>