web-dev-qa-db-fra.com

Existe-t-il un moyen d’intégrer WordPress dans un environnement existant? PHP Framework, CMS et système de navigation?

Je suis le développeur principal d'un système modulaire PHP qui fournit à mes clients un système de gestion de contenu (CMS), un système de commerce électronique et divers autres modules (diaporamas, témoignages, formulaires, FAQ, etc.). )

Mon infrastructure gère toutes les URL du site via un fichier .htaccess existant et les envoie au module approprié.

Une caractéristique de ce cadre qui est très importante pour les utilisateurs est le fait qu’il gère la génération de l’agrafe de page entière, y compris la navigation, fournissant une apparence et une apparence cohérentes, et une navigation de page à page . Il est très important que nous gardions cela.

Un certain nombre de mes clients ont demandé que nous ajoutions un module WordPress. Est-il possible d'intégrer ou "d'incorporer" WordPress dans un framework PHP existant et un modèle de navigation, de sorte que le moteur WordPress analyse l'URL et effectue toutes les actions d'approbate comme il le ferait normalement, mais ne génère que le contenu HTML le corps du site, permettant à mon framework de gérer le "template" HTML?

Pour info, je suis un expert en PHP, mais j'ai à peine touché à WordPress. Les réponses PHP-lourds ne me font pas peur du tout (et serait en fait apprécié, le cas échéant)

3
Josh

WordPress lui-même ne produit pas le code HTML complet, mais seulement certaines parties, et uniquement lorsque le thème le dit. Il laisse l'en-tête et le corps et ainsi de suite jusqu'au thème. Donc, si votre thème ne produit pas de section, elle ne le sera pas.

Bien que WP soit en soi un CMS à part entière, vous pouvez l’utiliser simplement comme générateur de section:

  1. Faire un thème qui ne sort que les bits que vous voulez. Un thème peut être aussi simple qu'un fichier style.css et un fichier index.php contenant une boucle. Voir http://codex.wordpress.org/The_Loop

  2. Si vous examinez le fichier index.php principal de WP, vous verrez qu'il ne fait rien d'autre que define('WP_USE_THEMES', true); et ensuite require('./wp-blog-header.php');. Vous pouvez donc faire la même chose pour démarrer WP et générer le résultat.

  3. La gestion des URL peut être délicate. WordPress s'attend à vivre à une URL "racine" et à gérer (la plupart) les URL situées en dessous. Donc, il aurait besoin de connaître cette URL racine dans la maison et siteurl. En l'implémentant en tant que module, si vous les connaissiez à l'avance, vous pourriez alors prédéfinir WP_HOME et WP_SITEURL avant de l'inclure afin de forcer le problème. Voir, le propre fichier .htaccess de WordPress route essentiellement toute URL qui n'existe pas déjà sous forme de fichier ou de répertoire sur le système vers le fichier index.php. Ensuite, il effectue sa propre analyse d'URL après cela, et il sait soustraire plus ou moins la racine.

Cela devrait probablement suffire pour commencer au moins. Le truc, c'est que si vous l'implémentez de cette façon, il ne fonctionnera pas avec n'importe quel thème WP, vous devrez fournir des thèmes spéciaux "section uniquement" avec ce thème. Vous aurez peut-être besoin d'un code personnalisé pour désactiver d'autres éléments, tels que les barres latérales, les menus, tout ce qui ne rentre pas dans votre conception d'avoir WP comme un générateur de page partiel.

4
Otto