我正试着在wordpress的TinyMCE编辑器中添加一个按钮。这里的代码将注册按钮注册到wordpress,这句话说得很好:
add_action( 'init', 'wptuts_buttons' );
function wptuts_buttons() {
add_filter( "mce_external_plugins", "wptuts_add_buttons" );
add_filter( 'mce_buttons', 'wptuts_register_buttons' );
}
function wptuts_add_buttons( $plugin_array ) {
$plugin_array['wptuts'] = get_template_directory_uri() . '/js/webramz-tinymce-toggle.js';
return $plugin_array;
}
function wptuts_register_buttons( $buttons ) {
array_push( $buttons, 'mybutton' ); // dropcap', 'recentposts
return $buttons;
}
下面是要添加按钮的js插件代码和它的命令:
(function() {
tinymce.create('tinymce.plugins.Wptuts', {
init : function(ed, url) {
ed.addButton('mybutton', {
text: "rtl-ltr",
cmd : 'mybuttoncmd',
});
ed.addCommand('mybuttoncmd', function() {
//function () {
$(".wp-editor-area").addClass("ltr");
//}
});
},
// ... Hidden code
});
// Register plugin
tinymce.PluginManager.add( 'wptuts', tinymce.plugins.Wptuts );
})();
按钮出现,但在控制台中单击时出现以下错误:
TypeError: $ is not a function
我的错是什么?事实上,我想添加一个切换按钮,在“文本模式”中添加和删除"ltr“类到"textarea”。有什么帮助吗?谢谢。
发布于 2017-06-20 00:12:03
虽然WordPress加载jQuery的方式与在常规应用程序中加载jQuery的方式略有不同,但它使用的是“兼容模式”。
它所做的最后一件事是没有定义$
,但定义了jQuery
。因此,当您使用$
尝试运行jQuery时,它是未定义的。如果您将其更改为使用jQuery
jQuery(".wp-editor-area").addClass("ltr");
...I会怀疑事情会开始为你工作。
要获得一个很好的解释,你可以阅读这篇文章:https://digwp.com/2011/09/using-instead-of-jquery-in-wordpress/
https://stackoverflow.com/questions/44634856
复制相似问题