11
votes

Zend Cadre et intégration WordPress

Nous avons un site Frame-cadre Zend existant hébergé sur Ourdomain.com et un blog WordPress sur blog.ourdomain.com

Nous voulons migrer le blog sur le site à Ourdomain.com/blog - mais j'ai semblé avoir googlé à la fin de la terre et ne peut pas savoir comment. J'ai essayé diverses choses .htaccess, mettre en place un contrôleur de blog et y compris certains fichiers WordPress, etc., mais en vain. P>

Est-ce que quelqu'un a des idées? p>

Configuration d'hôte virtuelle: p>

p> xxx pré>

Options Index résultats suucklinks P>

AllowOverride All

Order allow,deny
Allow from all


3 commentaires

Qu'est-ce qui ne va pas? De plus, pouvez-vous poster les fichiers .htaccess que vous utilisez pour le site principal et le blog WordPress?


D'abord, j'ai un alias dans mon httpd.conf: alias / blog / "/ users / me / blog", puis j'ai juste la standard Zend .htaccess Setenv Application_env Development RewriteEngine sur Rewritecond% {Demande_Filename} -s [ou] RewriteCond% {Request_filename} -l [ou] réécritecond% {request_filename} -d redreule ^. * $ - [nc, l] rewriterule ^. * $d index.php [nc, l] mais je n'ai aucune idée de pourquoi le blog / alias n'accumulera pas de sous-répertoires. / blog / fonctionne fine - / blog / post / tout ce qui donne un zend "blog de contrôleur non valide"


Peut-être que vous devez ajouter des itinéraires ZF correspondant à ces pages WordPress? Voir ma réponse ci-dessous.


6 Réponses :


0
votes

L'un des meilleurs articles sur la migration d'un site non ZF en ZF provient de Chris Abernethy .

Comme vous, il configure un contrôleur spécial pour ces scripts manutentionnés non ZF. Cependant, il (finalement) définit les itinéraires ZF correspondant à ces pages non-ZF, plutôt que de jouer avec des .htaccess externe.

Peut ne pas s'appliquer directement à votre cas, car votre exemple implique un sous-domaines pendant que son implique des pages sur le domaine même . Mais il y a de bonnes idées là-bas qui pourraient être utiles.


1 commentaires

RewriteEngine sur RewriteCond% {Demande_uri} ^ / Blog Rewriterule ^. * $ - [NC, L] REWRITECOND%}! -S REWRITECOND% {REDREE_FILENAME}! -L REWRITECOND%}! -D REWRITECOND% {REWRITECOND% {Demande_UREI} ! ^ / blog Rewriterule ^. * $ index.php [nc, l]



1
votes

J'utilise souvent cette configuration en fait, voici ce que je fais: xxx pré>

certes un peu de solution brutale, compte tenu de toutes les choses inutiles incluses dans le processus ... P >

EDIT: P>

// Define path to application directory
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));

// Define application environment
defined('APPLICATION_ENV')
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));

// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'),
    realpath(APPLICATION_PATH . '/../library/wordpress'),
    get_include_path(),
)));

//Get the wordpress environment
define('WP_USE_THEMES', false);
require_once 'wp-blog-header.php';

/** Zend_Application */
require_once 'Zend/Application.php';  



// Create application, bootstrap, and run
$application = new Zend_Application(
    APPLICATION_ENV, 
    APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()
            ->run();


4 commentaires

Pouvez-vous publier le code sur vous, y compris le dossier WordPress dans le chemin Inclure? J'ai l'ensemble du dossier "Bibliothèque" inclus


@Paztrick: Ouais, c'est un peu brutal - ce qui ne veut pas dire que je ne l'ai pas fait moi-même. ;-) Surtout si l'accès WP DB est via des appels MySQL_XXX () et l'accès ZF DB est via quelque chose comme PDO. Ensuite, une demande de page unique peut créer deux connexions DB distinctes, éventuellement à la même dB. Voir Stackoverflow.com/questions/2316413/...


Ok, donc tout cela comprend juste bien, mais je n'ai toujours aucune idée de la façon dont cela est censé travailler. Ajoutez-vous alors des contrôleurs pour votre blog? Tout est toujours en route via l'application Zend et sa lancement d'une erreur de contrôleur non valide (blog)


Avec cette solution, vous devez ajouter des contrôleurs, ce n'est pas une redirection de votre blog, c'est une intégration, ce qui signifie que vous avez accès à toutes les fonctions WordPress et vous pouvez désormais intégrer le contenu dans votre site principal en appelant les fonctions WordPress. dans vos contrôleurs.



15
votes

Le moyen le plus efficace et le plus simple d'accomplir cela en modifiant votre fichier .htaccess pour n'envoyer rien qui commence par / blog code> à l'application ZF - juste passer à WordPress. WordPress devrait être installé à l'intérieur de votre racine de document, bien sûr, pour que cela fonctionne, exactement comment vous allez l'installer normalement.

Exemple: P>

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]

RewriteRule ^blog - [NC,L]

RewriteRule ^.*$ index.php [NC,L]


11 commentaires

C'est enfin où je m'envole, mais toujours en vain. Comment cela est-il censé fonctionner quand j'ai un index.php qui doit exécuter le cadre Zend. Je vais maintenant essayer d'installer WordPress en public / blog et modifier la dernière ligne en blog / index.php


Ignorer mon dernier commentaire. J'ai complètement supprimé l'alias et mettez l'installation WordPress en public / blog et utilisez votre exact .htaccess - mais toujours avec une URL comme Site / Blog / 2010/09/23 / Destination-HoneyMoon-to-Goa-India Je reçois un contrôleur non valide. Pourquoi ce qui précède ne pas ignorer cette URI - sa réécriture toujours la réécriture d'être traitée par ZEND


J'ai changé d'exemple pour être plus pardonnant quand il s'agit de l'installation de votre application de votre annuaire. Avant de supposer la racine du domaine. J'ai testé cela, et ça marche bien.


Je l'apprécie, mais toujours pas de chance. Je pose ma configuration Virtualhost dans le post d'origine - y a-t-il quelque chose dans les directives de l'annuaire qui pourraient ne pas lui permettre. C'est comme si ça ne traite pas le blog ou! ^ Règles de blog du tout. Il convient à la page d'accueil uniquement parce que / blog / est un répertoire: rewriteCond% {request_filename} -d


Quelle est l'URL de base de votre application? Est-ce sur la racine de votre domaine? Sinon, avez-vous votre configuration de votre directive RewriteBase correctement?


C'est la racine de mon domaine. Je n'ai aucune idée - je vais insensé dessus. C'est définitivement la lecture de la règle, car si j'enversais cela (! ^ Blog) tout le reste se casse. Je ne sais pas pourquoi il passe toujours ceci à l'index Zend.php


En théorie, je sais que je ne devrais pas avoir besoin de, mais j'ai besoin d'un blog correspondant de règles *?


Jason - Merci beaucoup. Finalement compris cela grâce à vous mentionnant RewriteBase - il fonctionnait correctement, mais le dossier de mon blog réécrit à la /index.php au lieu du contrôleur /blog/index.php (WordPress 'Controller), donc c'était réellement juste en boucle dans l'application Zend. C'est Miller Temps!


Je dois dire que finalement quelqu'un qui utilise des réécrites pour combiner zf et wp. C'était très utile. PS: Avez-vous vu cela? krotscheck.net/ 2009/05/16 / ...


MERCI!! Si freaking beaucoup. Si heureux de ne pas avoir à faire des hôtes virtuels supplémentaires maintenant pour mes autres répertoires ...


Cette configuration permet-il de tirer dans l'en-tête et le pied de page du site Zend? J'ai des éléments dynamiques dans l'en-tête / pied de page de mon site que j'aimerais apparaître sur le blog WordPress.



0
votes

Voir la bonne réponse fournie par Jason. Assurez-vous simplement que votre fichier WordPress .htacess réécrit sur le bon index.php par défaut, il réécrirea à l'index de base.php - qui appartient à Zend. Mes solutions consistaient à modifier WordPress '.htaccess réécritbase sur / blog au lieu de /


0 commentaires

0
votes

J'ai écrit une bibliothèque open source susceptible de résoudre votre problème appelé Vulnero qui vous permet d'exécuter votre application Zend Framework à l'intérieur WordPress. Vos itinéraires sont manipulés par votre application, tout le reste va à WordPress. Peut même rendre votre point de vue dans votre modèle WordPress si vous le souhaitez. Intègre l'authentification, les connexions de base de données, tout cela. Source est sur GitHub ou vous pouvez lire la documentation à http://www.vulnero.com/ .


2 commentaires

Bien que cela puisse être utile pour une autre question, elle est entièrement inutile ici. Cette question portait sur les demandes de routage dans .htaccess . Il a été demandé et a répondu il y a plus de deux ans. Votre question ne ajoute rien et semble peu plus qu'une publicité.


Pas vraiment sûr de savoir comment vous trouvez cela sans valeur, car acheminez les demandes entre son application ZF et son installation WP, c'est exactement ce que j'ai écrit le projet.



0
votes

Pour migrer WordPress en ZF, vous pouvez utiliser wPloader .
Cela fonctionne pour moi lorsque j'utilise WordPress comme site multiple activé.
Vous pouvez utiliser tous les objets de contrôleur ZF dans vos fichiers WordPress.
Vous n'avez besoin d'aucun piratage dans votre WordPress, vous pouvez donc mettre à jour ou mettre à jour facilement votre version WordPress.


0 commentaires