关键PHP代码
// 添加表情按钮
function mce_button($buttons)
{
array_push($buttons, 'easy_emoji'); // 添加 'smiley' 按钮到 TinyMCE 编辑器中
return $buttons;
}
//add_filter('mce_buttons', 'mce_button',999); //mce_buttons会被Elementor清除掉,所以用下面第2行工具栏
add_filter('mce_buttons_2', 'mce_button', 999); //第2行工具栏
//让前台的TinyMCE加载时,能加载自己的js代码
function mce_javascript($plugin_array)
{
//主脚本
$plugin_array['easy_emoji'] = plugins_url('/plugin.js', __FILE__); // 指定表情插件的 js 文件路径
//数据文件
$smilies = getImageJson();
$dataStr='window.easy_emoji_json_data = ' . json_encode($smilies);
file_put_contents(plugin_dir_path(__FILE__).'/data.js', $dataStr);
$plugin_array['easy_emoji_data'] = plugins_url('/data.js', __FILE__);
return $plugin_array;
}
add_filter('mce_external_plugins', 'mce_javascript', 999, 1);
关于CSS样式文件.
CSS样式我认了,怎么添加都在Elementor中的TinyMCE中不生效
最后改为在js中动态加载CSS文件.
function loadCSS() {
let url = "/wp-content/plugins/easy-emoji/plugin.css"
var link = document.createElement('link');
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = url;
document.getElementsByTagName('head')[0].appendChild(link);
}
// 加载 CSS 文件
loadCSS();
2