我创建了一个简单的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');