chiamare uno shortcode in javascript

3 set 2012, 20:27:48
Visualizzazioni: 25.5K
Voti: 4

Voglio visualizzare uno shortcode tramite jQuery dopo il caricamento del DOM:

Questo è il modo in cui richiamo lo shortcode: <?php echo do_shortcode('[plugin]'); ?>

Ora, la mia domanda è come posso chiamare quello shortcode all'interno di una funzione jQuery, dato che il mio sito web è basato su chiamate jQuery/AJAX? Grazie!

1
Commenti

Per favore cerca nel sito. Stai semplicemente usando _doing_it_wrong(). Non c'è bisogno di chiamare uno shortcode - chiama direttamente le funzioni sottostanti/i callback AJAX o accedi all'oggetto localizzato (se ce n'è uno pronto).

kaiser kaiser
3 set 2012 20:46:36
Tutte le risposte alla domanda 1
0

Il codice Javascript viene eseguito nel browser dell'utente e non sul tuo server (dove risiede il contenuto WordPress). Potresti utilizzare AJAX per chiamare la funzione a cui punta lo shortcode.

Ecco come gestisco le chiamate AJAX con WordPress:

1) Utilizzo una funzione jQuery AJAX per chiamare wp-admin/ajax.php

jQuery.ajax({
    url: yourSiteUrl + "/wp-admin/admin-ajax.php",
    dataType: 'json',
    data: {
       'action':'your_ajax',
       'fn':'run_shortcode_function',
       'some_needed_value': jQuery('#input_for_needed_value').val()
       },
    success: function(results){
        //fai qualcosa con i risultati dello shortcode nel DOM
    },
    error: function(errorThrown){console.log(errorThrown);}
});// fine dell'ajax

2) Questo codice PHP si trova nel file functions.php del tuo tema o in un plugin personalizzato:

//questo è l'ajax di WordPress che può funzionare sia in front-end che nelle aree di amministrazione
add_action('wp_ajax_nopriv_your_ajax', 'your_ajax_function');
add_action('wp_ajax_your_ajax', 'your_ajax_function');
function your_ajax_function(){
     // la prima parte è un QUADRO COMANDI che attiva funzioni specifiche in base al valore della Variabile Query 'fn'

     switch($_REQUEST['fn']){
        case 'run_shortcode_function':
           $output = your_ajax_shortcode_function($_REQUEST['some_needed_value']);
           break;
        case 'some_other_function_you_want_to_perform':   
           $output = some_other_function($_REQUEST['first_name'],$_REQUEST['last_name']);
            break;
        default:
          $output = 'Nessuna funzione specificata.';
        break;

     }

   // a questo punto, $output contiene dei dati che vuoi restituire
   // Ora converti $output in JSON e stampalo nel browser
   // In questo modo possiamo riprenderlo con jQuery ed eseguire la nostra funzione di successo

          $output=json_encode($output);
         if(is_array($output)){
        print_r($output);
         }
         else{
        echo $output;
         }
         die;

}
your_ajax_shortcode_function($some_needed_value){
     return the_specific_function_that_the_shortcode_was_pointing_to($some_needed_value);
}   

Spero che questo ti indirizzi nella giusta direzione.

4 set 2012 03:22:04