Saya menambahkan tombol kustom ke editor TinyMCE, dan saya ingin membuka Thickbox WP ketika saya mengkliknya.
Bagaimana saya bisa membuatnya sehingga tb_show()
fungsinya memuat konten yang saya inginkan dengan ajax?
// the ajax
add_action('wp_ajax_getTheContent', 'getTheContent');
function getTheContent(){
echo 'weqwtegeqgr'; // <- this should be displayed in the TB
die();
}
Berikut beberapa kode plugin editor yang saya gunakan:
init : function(ed, url) {
ed.addButton('do_stuff', {
title : 'Do Stuff',
image : url + '/icon.gif',
onclick : function() {
OpenMyThickbox('do_stuff');
}
});
...
Jadi OpenMyThickbox
fungsi javascript harus melakukan apa yang saya inginkan:
function OpenMyThickbox(tag){
tb_show(tag, '...'); // <- how to load content trough ajax here ?
}
Jawaban:
Parameter kedua
tb_show
adalah URL, jadi Anda ingin menggunakan sesuatu seperti ..Saya kira Anda harus melewati tindakan dan setiap vars permintaan tambahan secara manual (sesuai di atas), jika tidak permintaan Anda hanya untuk
admin-ajax.php
, ketika apa yang Anda cari adalah sesuatu di sepanjang baris ...admin-ajax.php?action=getTheContent&someothervar=someothervalue
, makaadd_query_arg
penggunaan di atas. .Untuk klarifikasi:
Panggilan berikut ke
add_query_arg
...Setara dengan dan akan menghasilkan ...
Namun!
Setelah menjelaskan kepada diri sendiri, saya menyadari bahwa kami tidak menginginkan URL absolut dan karenanya tidak perlu menelepon ke
admin_url
sana. Seharusnya kodenya.Jadi URL yang dihasilkan terlihat seperti ini ..
Fungsi yang dirujuk dalam contoh kode di atas:
Tambahkan Query Arg
http://codex.wordpress.org/Function_Reference/add_query_arg
URL Admin
http://codex.wordpress.org/Function_Reference/admin_url
sumber
$_get['action']
karena pencarian ajax WordPress$_post['action']
? atau saya salah?$_POST
atau$_REQUEST
di dalam panggilan balik ajax biasanya, kecuali jika Anda secara eksplisit mengatur fungsi permintaan ajax Anda untuk digunakanget
sebagai gantinya, dalam konteks panggilan kotak tebal, kami menggunakan string kueri, yang masih akan muncul di$_REQUEST
(karena yang biasanya memegang keduanya$_GET
dan$_POST
) ..add_query_arg
args yang ditambahkan akan dikirim sebagai posting atau dapatkan?add_query_arg
menambahkan string (dari url) dengan parameter kueri, itu tidak melakukan pengiriman, jadi saya tidak yakin saya mengerti pertanyaan Anda ..Mengacaukan javascript dan PHP tidak terlalu pintar. Jawaban ini hanya membingungkan.
tb_show adalah javascript add_query_arg adalah PHP
jadi solusi ini hanya valid dalam PHP dan kode yang tepat adalah
Dan dalam javascript sama sekali tidak valid karena kita tidak bisa menggunakan add_query_arg
sumber
<?php ?>
tag di dalamnya? Jika hanya itu yang ingin Anda tunjukkan, silakan edit solusi untuk memperbaikinya. Tidak perlu menambahkan jawaban terpisah untuk menjelaskan apa yang salah dengan jawaban lain. Itu sebabnya suntingan komunitas dihargai.