มีความเป็นไปได้ไหมที่จะส่งตัวแปร PHP บางตัวในจาวาสคริปต์เพื่อใช้ในภายหลัง?
single.php
เฉพาะใน
ฉันได้ยินเกี่ยวกับwp_enqueue_scripts
แต่ที่มันเป็นสิ่งจำเป็นที่จะประกาศเส้นทางไปยังไฟล์ JS แต่ฉันไม่ต้องการมัน
มีความเป็นไปได้ไหมที่จะส่งตัวแปร PHP บางตัวในจาวาสคริปต์เพื่อใช้ในภายหลัง?
single.php
เฉพาะใน
ฉันได้ยินเกี่ยวกับwp_enqueue_scripts
แต่ที่มันเป็นสิ่งจำเป็นที่จะประกาศเส้นทางไปยังไฟล์ JS แต่ฉันไม่ต้องการมัน
คำตอบ:
ลองดูที่wp_localize_script
ซึ่งตั้งใจจะทำอย่างนั้น
แต่มันต้องการการใช้งานก่อนหน้านี้wp_enqueue_scripts
ดังนั้นคุณจะต้องย้าย JS ของคุณไปยังไฟล์แยกต่างหาก
มันจะคุ้มค่าไม่กี่นาทีของความพยายามแม้ว่าแน่นอน
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' );
ใน JS คุณจะสามารถใช้พารามิเตอร์ที่ส่งผ่านได้ดังนี้
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] );
}
ตามความคิดเห็นของคุณ
ฉันสร้างตาราง db ใหม่โดยใช้
response.id
s บางส่วนจาก facebook api นี่คือตาราง: action_id, user_id, post_id, fb_id โดยที่ fb_id คือการตอบกลับ id จากแอ็คชัน Facebook จากนั้นใน single.php ฉันมีปุ่มที่ถ้าฉันกดฉันต้องลบการกระทำ fb ด้วย api:FB.api('/'+fb.response, 'delete');
ที่fb.response
ควรจะfb_id
มาจากตาราง
วาง/js/
โฟลเดอร์ธีมของคุณต่อไปนี้สร้างมันหากไม่มีอยู่
มาเรียกไฟล์fb-response.js
กัน:
jQuery( '#button_id' ).click( function() {
FB.api( '/' + fbParams.id, 'delete' );
});
จากนั้นลงทะเบียนจัดคิวและแปลตามที่เห็นด้านบน สมมติว่าคุณมี ID ที่คุณต้องการส่งผ่านสมมติว่า$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 เห็นได้ชัดว่าข้างต้นสมมติว่าสิ่งนี้อยู่ในรูปแบบ หากเรากำลังพูดถึง "ปลั๊กอิน" ให้เปลี่ยนตำแหน่งตามนั้น
เมื่ออ่านความคิดเห็นของคุณแล้วฉันเข้าใจว่าคุณต้องการทำสิ่งนี้:
// Do something to get the ID
$facebook_id = ...
// Create and print the button
echo '<input onclick="FB.api('/'+'.$facebook_id.', 'delete')" />';
<input ... />
และฟังก์ชั่นของมันคือการแสดงให้เห็นสำหรับวัตถุประสงค์เฉพาะ เท่าที่ฉันเข้าใจคุณมีทุกสิ่งที่คุณต้องการ ถ้าไม่โปรดลองอธิบายเพิ่มเติม แต่ในคำถามของคุณไม่ใช่ในความคิดเห็น