我尝试为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;
}
点击按钮有人能看出为什么我无法打开窗户吗?
答案 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",