Stai consumando un'API esterna in WordPress?


9

Ho un cliente che ha un sito Web WordPress e vuole estenderlo per aggiungere nuove funzionalità. Queste funzionalità sono incluse in un sito Web che ho già realizzato (una sorta di motore di ricerca su un database, con alcuni filtri) e che è sotto nuovi miglioramenti.

Quello che sto pianificando di fare è creare una API JSON del mio sito Web (con tutte le funzioni di ricerca sul mio database) e fare in modo che il sito Web Wordpress utilizzi questa API, quindi dovrò solo creare visualizzazioni per mostrare i risultati della ricerca.

Il problema è che non conosco affatto WordPress (per me è qualcosa in cui è possibile aggiungere articoli tramite il pannello di amministrazione ...) e non so come possiamo scrivere il nostro codice lato server in esso. Ho cercato su Google e ho trovato qualcosa chiamato "plug-in", ma mi chiedo se sia possibile farlo, e se è il modo più semplice di farlo perché non ho bisogno che il codice venga utilizzato da nessun altro terzo festa. Se è possibile hackerare un'installazione di WordPress per aggiungere i miei file PHP, codificare ciò di cui ho bisogno (le mie visualizzazioni con lo stesso css di WordPress) sarebbe più semplice, ma non so se sia possibile?


Cosa stai esattamente cercando di fare, leggere un feed json in wordpress, inserire dati in un database, pubblicare tramite XML-RPC, provare ad essere più chiaro.
Wyck,

leggi il feed json. per esempio, il sito di wordpress dovrebbe contenere un modulo di ricerca, al momento dell'invio, eseguirà una chiamata get a un api, l'pi restituirà gli oggetti in json e dovrei produrre questi risultati in una pagina del sito di wordpress
tahir

1
@tahir Sto provando a fare proprio questa cosa. Saresti in grado di condividere come hai raggiunto il tuo obiettivo?
SAHM,

Risposte:


9

Una breve guida allo sviluppo di WordPress che potrebbe aiutarti o confonderti:

La cosa principale da tenere a mente: è tutto solo PHP. E inoltre: non modificare i file principali di WordPress, perché potresti avere problemi quando esegui l'aggiornamento a una versione più recente in un secondo momento. L'unico codice che dovresti modificare è quello dei plugin e dei temi.

Se hai solo bisogno di aggiungere qualcosa a una pagina esistente, potrebbe funzionare solo per modificare il file del tema giusto. Tuttavia, se devi fare qualcosa di avanzato (e l'aggiunta di una "vista" aggiuntiva, come in un URL specifico, è più avanzata in WordPress), devi aggiungere il codice in un punto che verrà caricato in precedenza nel processo di avvio di WordPress .

La ragione di ciò è che WordPress fa sempre una query post per te, in base all'URL. Vai a /category/banana/, eseguirà una query per i post di categoria bananae caricherà il file modello corretto in cui devi solo scorrere e visualizzarli. Tuttavia, se vai a /custom-view/, WordPress probabilmente non troverà alcun post e caricherà il modello 404, non offrendoti un modo semplice per recuperare!

Alcune persone lo risolvono creando "pagine stub": creano una Pagina in WordPress in cui il contenuto non è importante, solo il modello è: lì fanno qualsiasi cosa di fantasia che vogliono fare. Questo è un trucco, ma funziona. Il modo più semplice sarebbe definire regole di riscrittura extra , che consentano a WordPress di sapere che /custom-view/è un URL valido, ma che dovrebbe succedere qualcos'altro.

Se vuoi farlo, devi agganciarti al sistema principale di WordPress. La parte importante qui è agganciarsi , non modificare . WordPress ha azioni e filtri . Un'azione è solo un annuncio ( "Hey, al momento stiamo scrivendo il <head>tag. Vuoi aggiungere anche qualcosa?" ). Un filtro consente di modificare una variabile ( "Questo è il titolo del post. Se si desidera modificarlo, restituire un nuovo valore" ). Naturalmente, il trucco ora è sapere quali azioni e filtri dovresti usare. Questo dipende dal modo in cui scegli (pagine stub o nuove regole di riscrittura), quindi non entrerò nei dettagli qui.

È possibile definire le azioni e filtri che si desidera utilizzare in un file di plugin o nel functions.php del file del vostro tema. Sono speciali in quanto vengono caricati durante l'avvio di WordPress , quindi prima che venga eseguita la query principale e così via. Un file plugin è solo un file PHP, inserito nella wp-content/plugins/directory, con un'intestazione speciale in modo che WordPress possa leggere il suo nome e visualizzarlo nell'area di amministrazione in cui è possibile abilitarlo e disabilitarlo (in modo da poter lasciare il plugin nella directory ma temporaneamente disabilitarlo).


2

Nozioni di base

Devi aggirare le basi per plugin e temi. In breve: sono aggiunte alla funzionalità principale di wordpress. Normalmente i "plug-in" riguardano più la funzionalità e i "Temi" riguardano più la "vista". Potresti anche voler leggere un po 'di "API Plugin" .

JSON

Potresti voler usare lo script json2 integrato nel core per fornire un'API "sicura".

Esempio JSON

Il resto sarebbe qualcosa del genere:

$response = json_encode( array( 
     'data' => $your_output 
) );
header( "Content-Type: application/json" );
echo $response;

XML Rpc

Il Codice ha anche qualcosa a proposito di "XML Rpc" .

API Http

Un'altra possibilità potrebbe essere la richiesta http . Assicurati di leggere i riferimenti nella parte inferiore del link.


Webhooks

Questo è aggiuntivo, in quanto si tratta di dare un'API di consumo. Spiegazione qui . E c'è anche un plugin chiamato HookPress che fa questo lavoro per te. Anche alcune diapositive dell'autore.


1

Presumo che conosci PHP? O anche questa è una barriera?

Essenzialmente i plugin in WordPress sono convenzionali su come impacchettare il codice PHP in modo che sia riconosciuto e gestito dal core di WordPress. È formato, piuttosto che funzionalità.

Per quanto riguarda la funzionalità effettiva, puoi praticamente eseguire PHP arbitrario, ma è buona norma utilizzare le API di WP per compatibilità e affidabilità.

Pensa al tuo codice nel contesto di WP come include(che sarà tecnicamente). Da lì è l'ambito delle tue esigenze e risorse che determinerà quanto verrà riscritto per essere specifico di WordPress.


0

Sì, è possibile.

la maggior parte dei plugin viene creata attraverso quelli che vengono chiamati hook:

per esempio:

add_action("hook", "function")

è abbastanza facile costruirsi un plug-in una volta che sai cosa funziona quel framework, beh ... ti consiglierei di farmi familiarizzare con esso, il luogo più ampio per la conoscenza (anche se non il più organizzato - come php. net) è il codice wordpress .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.