Hola,
El siguiente código (labur.php) funciona a la perfección y hace lo siguiente:
- Cuando el usuario entra a editar/crear un post mediante el admin de Wordpress se ejecuta la acción labur_init.
- Labur_initregistar un fichero js (- labur.js), recoge la- url del posty crea un objeto con los datos para enviar a el fichero js.
- El fichero labur.js recoge los datos y los muestra en un imput del admin.
Parte del Código de labur.php
<?php
//load external files
add_action( 'add_meta_boxes', 'labur_init' ); 
// add admin settings
add_action('wp_ajax_labur_get_url', 'labur_get_url_process'); // El prefijo wp_ajax es por convención de wordpress
// Función para procesar el AJAX
function labur_get_url_process() {
  // Esta función ahora no hace nada. 
  // Lo ideal sería que esta función fuese la encargada de 
  // recoger la url del post y crear el objeto para enviarlo a labur.js
  exit();
}
/**
 * load external files
 */
function labur_init() {
    //register plugin js file. Jquery is a requirement for this script so we specify it
    wp_register_script( 'labur-js', plugins_url( '/labur.js', __FILE__ ), array('jquery') ); 
    //load scripts
    wp_enqueue_script('jquery'); 
    wp_enqueue_script('labur-js'); 
    // Recogemos toda la información del post
    global $post;
    // currently edited post id
    $post_uri = $GET['post'];
    wp_localize_script('labur-js', 'MyAjax', array(
      'aldakur_url' => get_permalink($post_uri),
      'action'=> 'labur_get_url' // labur_get_url es la acción pero sin el prefijo wp_ajax. Esta acción ejecutará la función labur_get_url_process
    )); 
}
?>Código de JS labur.js
jQuery(document).ready(function($) {
    $('#button_labur_get_url').click(function(e) { 
        $.post(document.location.protocol+'//'+document.location.host+'/aldakurnet/wp-admin/admin-ajax.php', MyAjax, function(response) { 
            $('#labur_shortened_url').val(MyAjax.aldakur_url);
        });
    });
});El problema es que tal y como funciona ahora, la url del post se agarra cuando se agregan los metabox add_action( 'add_meta_boxes', 'labur_init' ); y yo quiero que la dirección se agarre y se llame al fichero js cuando el usuario clique en un botón definido en el fichero labur.php. (para facilitar la lectura del post no he colocado el código del botón.)



