Ejecutar Ajax en wordpress

La única particularidad es no olvidarse de llamar a las librerías necesarias que se necesitan para trabajar con wordpress. Pongo el código y lo voy explicando.

 
<!-- Creamos un div u otro elemento donde le damos un ID y que será donde se volcarán los datos -->
 
 
<div id="resultado">
 
 
</div>
 
<!-- ahora ejecutamos un script donde enviaremos los datos que queremos para trabajar a otro archivo -->
 
 
 <script>
 jQuery(document).ready(function(){
    jQuery('#idiomatraduce').change(function () {
     var optionSelected = jQuery(this).find("option:selected");
     var valueSelected  = optionSelected.val();
     var textSelected   = optionSelected.text();
      var parametros = {
                "valueSelected" : valueSelected
                        };
 
 
<!-- En este caso meto en variables diversos valores de un select que tiene como ID idiomatraduce -->
 
 
     jQuery.ajax({
                data:  parametros,
                url:   '<?php echo site_url(); ?>/procesos-colores.php', <!-- Aquí le indico la página a la que envío los datos -->
                type:  'post',
                beforeSend: function () {
                        jQuery("#resultado").html("Procesando, espere por favor...");  <!-- Mensaje que muestro mientras se está ejecutando el script -->
                },
                success:  function (response) {
                        jQuery("#resultado").html(response); <!-- Aquí indico que muestre dentro del div resultado, lo que sea que está haciendo el archivo externo al que llamé -->
                }
        });
 });
});
</script>

 
<?php
 
// Llamo a los archivos necesarios que necesita wordpress 
 
define('WP_USE_THEMES', false);
require_once('wp-load.php');
 
 
global $sitepress;
 
// Meto en una variable el valor recogido que me envié desde el script anterior, y hago las operaciones que considero con él.
 
$elidioma = $_POST['valueSelected'];
 
$new_lang = $elidioma;
$current_lang = $sitepress->get_current_language(); //save current language
$sitepress->switch_lang($new_lang);
 
 
// En este caso hago una query para recoger datos de la bd de wordpress
 
$arr = array(
      'post_type' => 'post',
      'suppress_filters' => false,
      'category_name' => 'Colores'
 );
 
$wp_query = new WP_Query( $arr );  // ejecuto la query
while ( $wp_query->have_posts() ) : $wp_query->the_post();  //comienzo el bucle de wordpress
 
 
 
$file = get_field('audio');  //En este caso capturo un campo personalizado llamado audio
 
$slug = echo basename(get_permalink()); 
 
 
/*Hago un echo para mostrar lo que quiero dentro del div "resultado" que cree en la página anterior donde hacía llamada a este código. Aquí dentro podríamos hacer lo que quisieramos, he puesto un ejemplo de llamada a la base de datos y ejecución del bucle que puede ser de las cosas más comunes que nos interesara hacer en wodpress */
 
echo '
<div class="columna4 fila '.$paraimpar.' ?>">
<span class="nombre">'.get_the_title().'</span><br />
<span class="audio">
       <audio controls="controls" id="player_5124" preload="none">
       <source src="'.$file['url'].'" type="audio/mpeg">
 
       <embed autostart="false" controller="true" height="40" loop="false" src="'.$site_url.'/wp-content/uploads/audios/'.$carpeta.'/'.$slug.'mp3" type="audio/mp3" width="200">
       </audio>
       </span>
</div>';
 
endwhile;
 
 
 
?>

Add Comment

Required fields are marked *. Your email address will not be published.