2016-01-03 15 views
7

Mi piacerebbe sviluppare temi/plugin per WordPress basati su React.js. Per renderlo search engine friendly, ho bisogno che venga reso inizialmente sul server (serveride-rendering).Rendering lato server React.js con PHP

L'unico modo per farlo per quanto ne so è utilizzare react-php-v8js, che richiede PECL V8js extension. Questo è un problema, dal momento che non ho alcun controllo sulla piattaforma su cui verranno eseguiti questi temi/plug-in.

C'è un modo per far funzionare React.js e WordPress senza dover installare estensioni aggiuntive? Forse costruendo/compilando i file di reazione in PHP?

+0

Puoi chiarire cosa intendi con "Non ho il controllo sulla piattaforma"? Suppongo che intendi che non hai accesso o il permesso di fare installazioni sul server di cose come V8js o Nodejs, corretto? Ci sono alcune soluzioni che conosco ma che implicano l'installazione dell'una o dell'altra. – PeterG

+0

Questo è corretto - Non riesco a installare alcuna estensione PHP (ad esempio v8js) o qualcosa come Node.js. Questi plugin/temi di WordPress saranno probabilmente eseguiti su piattaforme di hosting condiviso, che non lo consentono. –

+0

In questo caso, l'unico approccio che posso pensare è impostare nodejs o V8 su un server separato e fare in modo che il proprio codice di reazione lo chiami esclusivamente per eseguire il rendering lato server. Potresti avere a che fare con alcuni problemi CORS, ma in teoria non vedo perché questo non avrebbe funzionato (nota che in realtà non l'ho provato io stesso). – PeterG

risposta

0

Se vuoi che il tuo contenuto venga indicizzato dal motore di ricerca senza js, puoi stampare il tuo contenuto minimo usando Wordpress, solo il minimo indispensabile + meta tag cruciali, magari localizzare qualche stato iniziale per l'app di reazione da avviare. Un tema osso nudo come http://underscores.me/ sarebbe sufficiente. Quando js è disponibile, puoi sostituire l'intero contenuto generato da WordPress con quelli di React.

L'ideale è avere React generare il contenuto per te. Ma è difficile finché non vediamo che l'estensione nodejs/PECL V8js è disponibile ovunque.