Wordpress功能在自定义TinyMCE编辑器按钮内不起作用

时间:2014-07-10 11:15:37

标签: php wordpress

我创建了简单的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并且它有效,但是有点矫枉过正吗?有什么想法吗?

1 个答案:

答案 0 :(得分:0)

查看wordpress的加载过程。如果你从插件文件中调用这些函数,它们将无法加载。

您需要做的是

add_action('init', 'your function callback name');