[英]Wordpress functions doesn't work inside custom TinyMCE editor button
我創建了一個簡單的TinyMCE插件,如下所示。 基本上,這是TinyMCE編輯器中的一個新按鈕,按下后會彈出燈箱(厚框)。
// create plugin
tinymce.create('tinymce.plugins.callthickbox', {
init : function(ed, url) {
ed.addButton('callthickbox', {
title : 'This is Thick Box',
cmd : 'showthickbox'
});
ed.addCommand('showthickbox', function() {
ed.execCommand('mceInsertContent', false, callthatthickbox(url,null));
});
//blah blah blah the rest...
});
tinymce.PluginManager.add('callthickbox', tinymce.plugins.callthickbox);
並通過以下方式調用:
// call the PHP form
function callthatthickbox(url) {
tb_show( "This is Thick Box", url + '/thickbox-form.php', false);
}
將會彈出厚框,並且PHP文件(厚框的內容)也可以正常使用,但是所有WP函數在這些PHP文件中都無法正常工作,例如wp_list_categories()或bloginfo('url') 。
顯然,PHP文件失去了訪問WP函數的權利。 我可以嘗試通過URL傳遞變量,但這似乎不是一個很好的解決方案,尤其是當我想傳遞數組時。
有人有更好的解決方案嗎?
非常感謝!
編輯:我試圖將wp-load.php加載到PHP文件中,並且它可以工作,但是那不是一點點大刀闊斧嗎? 任何想法?
查看Wordpress的加載過程。 如果您是從插件文件中調用函數,則不會加載它們。
您需要做的是
add_action('init', 'your function callback name');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.