Carnet Wiki

Accéder aux tables WordPress

Version 9 — Avril 2015 YannX

Un exemple rapide d’usage des squelettes SPIP (avec une base externe),
pour simplement lister le contenu d’un site WordPress, en préalable a sa reprise.

Cette page montre aussi un exemple d’accès à des tables externes à SPIP...

Cette page de Documentation, complémentaire au plugin WP2SPIP a comme simple raison de mettre à disposition et documenter quelques squelettes qui pourraient être utiles pour des personnes voulant reprendre les données en tables WordPress,
sans avoir à rechercher des définitions de champs dans les bases de données.

L’usage des facilités de tables externes (déjà autorisé en SPIP 2) rend plus facile la modification des squelettes fournis en fonction du prefixe des tables utilisé dans l’installation WordPress ciblée, puisque justement il n’y en a pas, et que vous pouvez meme exporter un Wordpress situé sur un autre serveur MySQL (sous réserve bien sûr que votre serveur SPIP ait les droits d’accès à ce MySQL).

Paramétrage préalable : accès à WordPress

Le secret de la facilité d’usage des squelettes fournis se trouve dans le paramétrage d’un fichier de connexion secondaire, à nommer wp.php (que SPIP 3 pourra vous créer automatiquement dans le répertoire ./config par : Maintenance / Maintenance technique).

Un exemple vous en est donné ci-dessous :

<?php
if (!defined("_ECRIRE_INC_VERSION")) return;
define('_MYSQL_SET_SQL_MODE',true);
// $GLOBALS['spip_connect_version'] = .7;
// function spip_connect_db($host, $port, $login, $pass, $db='', $type='mysql', $prefixe='', $auth='')
spip_connect_db('localhost','','*root*','*password*','base_wp','mysql', 'wp_prefix','');
?>

Vous pouvez bien sur générer ce fichier de connexion en SPIP 3, avec le choix Maintenance / maintenance Technique dans l’interface privée de votre SPIP 3, surtout si vous installez SPIP avec un préfixe de jeux de tables différent du préfixe de WP (ce qui est tout de même conseillé au cas où une table d’un plugin Wordpress aurait le même nom qu’une table SPIP..).

Spécificités d’usage technique

Les squelettes fournis dans le zip ne sont que de simples noisettes que l’on appellera sans paramètre, plus facilement en mode Z ; ci-dessous l’exemple de l’affichage des Posts :

<B_ligne>
<h3>wp_posts (#TOTAL_BOUCLE)</h3>
<ul>  #PAGINATION
<BOUCLE_ligne(wp:spip_posts) {par  id} {pagination 20} >
<li> #ID #POST_AUTHOR  [<i>(#POST_DATE|affdate_jourcourt) #POST_DATE_GMT</i>] <h4> #POST_TITLE</h4><p>#POST_CONTENT</p>  
 #POST_EXCERPT  #POST_STATUS #COMMENT_STATUS  #POST_PASSWORD 
 #POST_NAME     #TO_PING #PINGED   [<i>(#POST_MODIFIED|affdate_jourcourt)   #POST_MODIFIED_GMT</i>]  #POST_CONTENT_FILTERED  #POST_PARENT #GUID #MENU_ORDER #POST_TYPE  #POST_MIME_TYPE #COMMENT_COUNT
#TERM_GROUP 
  </li>
</BOUCLE_ligne>
</ul>    #PAGINATION
</B_ligne>

Les boucles n’ont qu’une particularité : <BOUCLE_ligne(wp:spip_posts) ...>
la table sur laquelle SPIP va boucler, spécifiée à l’intérieur des parenthèses de la ligne BOUCLE_.. est indiquée en « nom physique » réel [1], spécifiant toutefois le préfixe symbolique spip_ qui sera automatiquement remplacé par le préfixe spécifié dans le septième paramètre du fichier de connexion ci-dessus, celui-là même qui est choisi par le radical fourni avant le séparateur :. [2]

N.B. : Il a aussi été choisi de présenter un squelette proposant l’usage de la pagination....

Lancer la page d’accueil

Quelques squelettes basiques sont proposés pour vous afficher l’ensemble des champs disponibles : attention, ces squelettes montrent la totalité de la base, et donc ils ne sont pas à laisser tel quels sur un site Internet en production publique.

En copiant le contenu fourni dans un sous répertoire de votre dossier squelettes, vous pourrez obtenir la page d’accueil ci-dessous.

Si vous avez déjà installé Zpip, les liens proposés utilisent directement la structure Z pour afficher les blocs fournis dans ./squelettes/contenu/page-wp_xxx.

Sinon, libre à vous de les afficher/modifier, d’utiliser ces noisettes,
ou de remplacer les URL proposées de façon analogue à l’exemple indiqué...

Nota Bene : la pagination SPIP n’a été introduite que dans les squelettes d’affichage des Posts dans cette première version.

Pour aller plus loin


-  accéder directement aux tables dans Spip-Vertebres :
Vous pouvez utiliser une installation spécifique de SPIP 3 dans le même répertoire que WordPress (en prenant soin de protéger le index.php d’origine WordPress [3]), si vous avez l’autorisation du webmestre d’accéder à ce serveur.

En choisissant le même prefixe pour SPIP que pour les tables du Wordpress installé,
et en vous connectant comme WebMestre vous pourrez directement utiliser les facilités de Vertebres (uniquement documenté en Vertebres), accessibles par ./ecrire/?exec=vertebres pour surfer sur le contenu du blog en base, sans risquer de modifier les données d’origine.
-  valider l’intégration dans un squelette inspiré des blogs WordPress, pour obtenir un produit prêt à emploi.... et plus facilement adaptable à des besoins particuliers [4]

Selon les demandes, on pourrait envisager d’en faire un plugin, prêt à l’usage « out-of-the-box »..