自定义快捷代码和按钮在3.9更新后不起作用

时间:2014-04-25 作者:Archimidis M

我添加了一个创建短代码的新按钮,但在最新的WordPress更新之后,该按钮似乎不再工作了。按钮是可见的,但当有人单击它时,什么都不会发生。

我使用的代码如下-js part

(function() {
tinymce.create(\'tinymce.plugins.affiliate\', {
    init : function(ed, url) {
        ed.addButton(\'affiliate\', {
            title : \'Add Affiliate Link\',
            cmd : \'Affiliate link\',
            image : url+\'/euro.png\',
            onclick : function() {
                 ed.selection.setContent(\'[aff afftitle="" afflink=""]\' + ed.selection.getContent() + \'[/aff]\');

            }
        });
    },
    createControl : function(n, cm) {
        return null;
    },
});
tinymce.PluginManager.add(\'affiliate\', tinymce.plugins.affiliate);
})();
我也为PHP部分编写了代码,但我不确定是否存在问题。我想问题出在上面的JavaScript中。

我知道createControl已经不存在了。我正试图回避这个问题,但目前运气不好。

2 个回复
SO网友:Bindiya Patoliya

尝试以下操作:

<script type="text/javascript">
    tinymce.init({
    selector: "textarea",
    toolbar: "mybutton",
    setup: function(editor) {
        editor.addButton(\'mybutton\', {
            type: \'splitbutton\',
            text: \'My button\',
            icon: false,
            onclick: function() {
                editor.insertContent(\'Main button\');
            },
            menu: [
                {text: \'Menu item 1\', onclick: function() {
                                  tinyMCE.activeEditor.execCommand("myPopup", false, {
                                      title: \'Divider\',
                                      identifier: \'divider\'
                              })}},
                {text: \'Menu item 2\', onclick: function() {editor.insertContent(\'Menu item 2\');}}
            ]
        });
    }
    });

SO网友:MavBzh

不幸的是,我有同样的问题,我不得不重写我的插件。看到这个了吗TinyMCE Fiddle

我创建了一个示例,添加一个按钮来插入短代码(插入或换行选择)。

tinymce.PluginManager.add(\'example\', function(editor, url) {
// Add a button that insert a shortcode
editor.addButton(\'example\', {
    text: \'Custom Button\',
    icon: false,
    onclick: function() {
        // Do something...
        if (editor.selection.getContent())
        {
            editor.selection.setContent(\'[aff afftitle="" afflink=""]\' + editor.selection.getContent() + \'[/aff]\');
        }
        else
        {
            editor.selection.setContent(\'[aff afftitle="" afflink=""]Your text here...[/aff]\');
        }
    }
});
});

当做

结束

相关推荐

如何将一段代码放在DO_SHORTCODE()中的[Shortcode][/Shortcode]之间?

所以我想在一个“like lock”后面放一个帖子循环,该锁是由一个插件创建的,该插件使用短代码[to\\u like ID=“XX”]内容[[to\\u like]。但是我没有用插件阻止内容,而是得到了一个包含所有帖子永久链接的页面。所以我想我要问的是,如何将页面内容(即,显示帖子的模板中的循环)放在短代码中,使其被插件隐藏?这就是我现在得到的:foreach ( $posts as $post ) : setup_postdata( $post ); $content