Call to undefined function - jQuery - Wordpress - plugin

Ciao a tutti.

sto lavorando su un plugin di wordpress.  Il plugin semplicemente attiva una instant serach su una cassella di <input> ovvero nel mentre l'utente digita iniziano a venire fuori i risultati (un pò come il Google instant search). 

Nella pagina principale (is.php) del mio pugin tramite "onkeyup" lancio uno script che a sua volta tramite jquery richiama una pagina php (is_result.php), o meglio una  funzione di questa pagina che estrae il risultato dal DB e lo restituisce alla pagina chiamante (is.php).

Il tutto funziona correttamente, però nel codice html generato da is_result.php ho necessità di richiamare alcune funzioni standard di wordpress ma dalla pagina is_result.php non riesco a richiamare nessuna funzione di wordpress (cosa che invece posso fare tranquillamente nella pagina is.php ovvero la pagina principale del plugin)

Sotto pezzi di codice di riferimento:

is.php (la chiamata alla pagina is_result.php)


<input id="ricerca" type="text" onkeyup="instantsearch(this.value,'<?php echo $pluginpath."/includes/is_result.php?funzione=1";?>' ,'#risultato')" />

<script id='pippo'  type="text/javascript">
function instantsearch (value,fun,out)

{

jq.post(fun, {valore:value}, function(data) {jq(out).html(data);});
}
</script>

 

Come posso far si che is_result.php veda tutte le funzione di Wordpress?

Ciao e grazie

 

inviato 5 anni fa
socialj
X 0 X

Quando il tuo snippet JavaScript invia la richiesta POST al file is_result.php il "contesto" in cui viene eseguito quel file è quello di una normale richiesta HTTP POST isolata e non quello di Wordpress, è questo il motivo per cui non puoi utilizzare le funzioni di Wordpress al suo interno: non sono definite da nessuna parte.

In altre parole per riuscire ad utilizzare il contesto di Wordpress (funzioni, variabili d'ambiente, etc) devi fare in modo che is_result.php sia un Entry Point per Wordpress, e per fare ciò è  necessario eseguire il setup dell'ambiente di Wordpress manualmente all'interno di quel file.

Puoi prendere spunto dal file index.php di Wordpress per capire quali file devi includere per tirar su il minimo necessario a far funzionare il codice presente nel tuo file is_result.php.

Ciao!

risposto 5 anni fa
Andrea Turso
Andrea Turso
86
Ciao Andrea, grazie mille per il suggerimento. Adesso provo a seguire la strada indicata da te. Ti faccio sapere Ciao e grazie ancora per la risposta. Gisueppesocialj 5 anni fa
X 1 X
Effettua l'accesso o registrati per rispondere a questa domanda