我创建了简单的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传递变量,但它似乎不是优雅的解决方案,特别是如果我想传递一个数组。
有人有更好的解决方案吗?
之前非常感谢!
编辑:我试图在PHP文件中加载wp-load.php并且它有效,但是有点矫枉过正吗?有什么想法吗?答案 0 :(得分:0)
查看wordpress的加载过程。如果你从插件文件中调用这些函数,它们将无法加载。
您需要做的是
add_action('init', 'your function callback name');