WordPress TinyMCE按钮,不会打开窗口

时间:2014-01-11 15:49:26

标签: javascript php wordpress tinymce wysiwyg

我尝试为wordpress创建一个插件,我在TinyMCE编辑器中需要一个按钮。我已经尝试了几个教程,我可以在工具栏中找到按钮,但它不会打开一个窗口。我试图效仿这个例子:http://return-true.com/2011/12/adding-tinymce-button-to-wordpress-via-a-plugin/

我的javascript代码:

// JavaScript Document
(function() {
    tinymce.create("tinymce.plugins.afflpad", {
        init : function(ed, url) {
            ed.addCommand("afflpad_click", function() {
                ed.windowManager.open({
                    file : url.substring(0, url.length -2) + "afflpad_selector.php",
                    width : 480,
                    height : auto,
                    inline: 1,
                }, {
                    plugin_url : url    
                });
            });
            ed.addButton("afflpad_button", {
                title : "Affiliate Link",
                cmd : "afflpad_click",
                image : url.substring(0, url.length -2) + 'img/afflpad_button.png'
            });
        },
        getInfo : function() {
            return {
                longname : "Affiliate links",
                author : "NAME",
                authorurl : "HOMEPAGE",
                infourl : "HOMEPAGE",
                version : tinymce.majorVersion + "." + tinymce.minorVersion
            };
        }
    });
    tinymce.PluginManager.add("afflpad", tinymce.plugins.afflpad);
})();

我的用于在wordpress中实现的PHP代码:

function afflpad_mce_buttonhooks() {
    if(current_user_can("edit_posts") && current_user_can("edit_pages") && get_user_option("rich_editing") == "true") {
        add_filter("mce_external_plugins", "afflpad_register_tinymce_javascript");
        add_filter("mce_buttons", "afflpad_register_mce_buttons");  
    }
}

add_action("init", "afflpad_mce_buttonhooks");

function afflpad_register_tinymce_javascript($plugin_array) {
    $plugin_array["afflpad"] = plugins_url("/js/afflpad_tinymce_plugin.js", __file__);
    return $plugin_array;
}

function afflpad_register_mce_buttons($buttons) {
    array_push($buttons, "|", "afflpad_button");
    return $buttons;
}

点击按钮有人能看出为什么我无法打开窗户吗?

2 个答案:

答案 0 :(得分:0)

不确定这是否适用,但由于PHP短开标记<?与在tinymce jQuery库中使用这些字符之间的冲突,我看到了问题。

结束修改wp-includes / js / tinymce / tiny_mce.js(或者可能是wp-includes / js / tinymce / wp-tinymce.js)

更改了

的事件
{c.push("<?",

{c.push("<" + "?",

感谢MarcBB的修复。

答案 1 :(得分:0)

我做到了!它现在有效。

问题是auto应该是“auto”。但是我也不能自动工作,所以现在我只有一个固定的高度。

height : "auto",