Wordpress函数在自定义TinyMCE编辑器按钮中不起作用


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');