¿Existe alguna posibilidad de pasar algunas variables PHP en javascript para poder usarlas más tarde?
Sólo single.php
.
Me enteré, wp_enqueue_scripts
pero con eso es necesario declarar una ruta a un archivo JS, pero no necesito una.
¿Existe alguna posibilidad de pasar algunas variables PHP en javascript para poder usarlas más tarde?
Sólo single.php
.
Me enteré, wp_enqueue_scripts
pero con eso es necesario declarar una ruta a un archivo JS, pero no necesito una.
Respuestas:
Echa un vistazo a wp_localize_script
, que está destinado a hacer exactamente eso.
Pero requiere un uso previo dewp_enqueue_scripts
, por lo tanto, deberá mover su JS a un archivo separado.
Sin embargo, valdrá la pena esos pocos minutos de esfuerzo.
function wpse_96370_scripts()
{
if ( is_single() ) {
wp_register_script(
'your_script_handle',
get_template_directory_uri() . '/js/your-script.js',
array( /* dependencies*/ ),
1.0,
true
);
wp_enqueue_script( 'your-script-handle' );
$script_params = array(
/* examples */
'post' => 99,
'users' => array( 1, 20, 2049 )
);
wp_localize_script( 'your-script-handle', 'scriptParams', $script_params );
}
}
add_action( 'wp_enqueue_scripts', 'wpse_96370_scripts' );
En el JS, podrá utilizar los parámetros pasados de la siguiente manera:
var posts = scriptParams.post,
secondUser = scriptParams.users[1]; /* index starts at 0 */
// iterate over users
for ( var i = 0; i < scriptParams.users.length; i++ ) {
alert( scriptParams.users[i] );
}
Según su comentario
Creé una nueva tabla db con algunas
response.id
s de la API de Facebook. Esta es la tabla: action_id, user_id, post_id, fb_id donde fb_id es response.id de una acción de Facebook. Luego, en single.php tengo un botón donde si presiono debo eliminar la acción fb con api:FB.api('/'+fb.response, 'delete');
dondefb.response
debería estarfb_id
en la tabla.
Ponga la siguiente /js/
carpeta de su tema , créelo, si no existe.
Llamemos al archivo fb-response.js
:
jQuery( '#button_id' ).click( function() {
FB.api( '/' + fbParams.id, 'delete' );
});
Luego regístrese, ponga en cola y localice como se ve arriba. Suponiendo que tiene la identificación que le gustaría pasar, digamos $fb_id
:
wp_register_script(
'fb-response',
get_template_directory_uri() . '/js/fb-response.js',
array( 'jquery' ),
1.0,
true
);
wp_enqueue_script( 'fb-response' );
wp_localize_script( 'fb-response', 'fbParams', array( 'id' => $fb_id ) );
NB Obviamente, lo anterior supone que esto está en un tema. Si estamos hablando de "complemento", modifique las ubicaciones en consecuencia.
Después de leer su comentario, entiendo que le gustaría hacer algo como esto:
// Do something to get the ID
$facebook_id = ...
// Create and print the button
echo '<input onclick="FB.api('/'+'.$facebook_id.', 'delete')" />';
<input ... />
y su función era solo para fines demostrativos. Hasta donde te entendí, hay todo lo que necesitas. Si no, intente explicar un poco más, pero en su pregunta, no en los comentarios.