WordPress, API, Gestion – Utiliser WordPress en dehors de WordPress
Cela peut devenir assez contraignant d’utiliser un CMS comme WordPress dans sa totalité notamment si vous souhaitez par exemple re-injecter dynamiquement du contenu de votre blog sous WordPress dans un autre site, plus corporate ou bien par exemple parce que vous souhaitez utiliser le “backend” mais pas le “frontend” de WordPress.
C’est l’objet de l’article aujourd’hui qui va vous montrer rapidement comment charger du contenu émanant de WordPress sans le thème (frontend) qui l’accompagne. Vous disposez avec cette méthode néanmoins de toutes les fonctions WordPress.
Le code indispensable
On a fait le test en local sous MAMP à l’aide de WP Version 3.3. Le chemin vers notre WordPress pleinement fonctionnel est disponible à l’adresse suivante :
- Le chemin en local de notre WP est :
/Applications/MAMP/htdocs/wp/
- L’adresse de notre WP est :
http://127.0.0.1/wp/
Il nous reste à créer un répertoire sur le même serveur mais hors de l’arborescence du WordPress.
- Le chemin en local de notre répertoire hors WP est :
/Applications/MAMP/htdocs/no_wp/
- L’adresse en local de notre répertoire hors WP est :
http://127.0.0.1/no_wp/
C’est dans ce répertoire que l’on va placer notre fichier PHP afin d’appeler le contenu du WP hors de WP.
Le fichier call_wp_no_theme.php
Le fichier call_wp_no_theme.php
se décompose en deux parties :
1. La partie de code indispensable pour charger wordpress sans son thème mais accéder aux principales fonctions de WP est la suivante.
<?php /* LOAD WP WITH NO THEME */ define('WP_USE_THEMES', false); require($_SERVER['DOCUMENT_ROOT'] . '/wp/wp-blog-header.php'); ?> |
2. Le code pour appeler par exemple les 3 derniers articles
<?php /* THE LOOP */ query_posts('showposts=3'); ?> <table cellpadding="5" cellspacing="5" border="0"> <?php while (have_posts()) : the_post(); ?> <tr> <td valign="top"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_post_thumbnail('thumbnail'); ?></a></td> <td valign="top"><h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a></h2><?php the_excerpt(); ?></td> </tr> <?php endwhile;?> </table> |
Le code complet du fichier call_wp_no_theme.php
qui sera disponible à l’adresse suivante http://127.0.0.1/no_wp/
<?php /* LOAD WP WITH NO THEME */ define('WP_USE_THEMES', false); require($_SERVER['DOCUMENT_ROOT'] . '/wp/wp-blog-header.php'); ?> <?php /* THE LOOP */ query_posts('showposts=3'); ?> <table cellpadding="5" cellspacing="5" border="0"> <?php while (have_posts()) : the_post(); ?> <tr> <td valign="top"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_post_thumbnail('thumbnail'); ?></a></td> <td valign="top"><h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a></h2><?php the_excerpt(); ?></td> </tr> <?php endwhile;?> </table> |
Nos 3 derniers articles avec une image par défaut vus du “backend” http://127.0.0.1/wp/wp-admin/
Nos 3 derniers articles vus du “frontend” http://127.0.0.1/wp/
Nos 3 derniers articles vus depuis http://127.0.0.1/no_wp/call_wp_no_theme.php
En savoir plus
- How to display recent posts outside WordPress
http://www.webdesigncreare.co.uk/blog/videos/recent-posts-outside-wordpress.html - Display WordPress content outside your blog // Corvid Works
http://www.corvidworks.com/articles/wordpress-content-on-other-pages - Comment inclure un blog WordPress dans un autre site
http://developer.expressionz.in/blogs/fr/tag/wordpress-api/ - WordPress API’s
http://codex.wordpress.org/WordPress_API’s - WP functions outside of WordPress
http://wichitawebdesigner.com/blog/tag/wordpress/ - Embed WordPress Functions Outside WordPress
http://wpengineer.com/1038/embed-wordpress-functions-outside-wordpress/ - Integrating WordPress with Your Website
http://codex.wordpress.org/Integrating_WordPress_with_Your_Website - External login using the WordPress 2.7 login system
http://cubehouse.org/blog/2008/12/14/external-login-using-the-wordpress-27-login-system/