代码之家  ›  专栏  ›  技术社区  ›  Ankit Pandey

wordpress/tinymce-hook/filter to add target=“空白”in a url

  •  0
  • Ankit Pandey  · 技术社区  · 6 年前

    这是我到现在为止所做的:

    functions.php

    函数droid_buttons()。{ 添加_filter(“mce_buttons”、“droid_register_buttons”); 函数droid_添加按钮($plugin_数组){ echo get_template_directory_uri(); 功能机器人注册按钮($buttons){ 返回$buttons;
    
    
    (function()。{
    init:函数(编辑器,url){
    title:'机器人标题',
    图像:“”
    
    var selected_text=editor.selection.getContent();
    return_text='<a href=“'+element+'”class=“droid_title”target=“_blank”>'+选中的_text+'</span>';
    })(二)
    
    
    })(二)
    
    tinymce.pluginmanager.add(“droid”,tinymce.plugins.droid);
    
    
    
    

    我通过这里给出的解决方案:

    这里:

    以下是我到目前为止所做的:

    https://wordpress.stackexchange.com/questions/141344/add-button-in-tinymce-editor-to-insert-text

    函数.php

        add_action( 'init', 'droid_buttons' );
    function droid_buttons() {
        add_filter( "mce_external_plugins", "droid_add_buttons" );
        add_filter( 'mce_buttons', 'droid_register_buttons' );
    }
    
    function droid_add_buttons( $plugin_array ) {
        $plugin_array['droid'] = get_template_directory_uri() . '/js/text-button.js';
        echo get_template_directory_uri();
        return $plugin_array;
    }
    
    function droid_register_buttons( $buttons ) {
        array_push( $buttons, 'droid_title'); // droid_title
        return $buttons;
    }
    

        (function() {
        tinymce.create('tinymce.plugins.Droid', {
        init : function(editor, url) {
        editor.addButton('droid_title', {
        title : 'Droid Title',
        cmd : 'droid_title',
        image : ''
        });
    
        editor.addCommand('droid_title', function() {
        var selected_text = editor.selection.getContent();
        var element = "http://www.google.com";
        var return_text = "";
        return_text = '<a href="'+element+'" class="droid_title" target="_blank">' + selected_text + '</span>';
        editor.execCommand('mceInsertContent', 0, return_text);
        });
    
        },
    
        });
    
        // Register plugin
        tinymce.PluginManager.add( 'droid', tinymce.plugins.Droid );
    })();
    

    因此,在我的functions.php文件和text-button.js文件中添加上述代码后,它添加了一个在WordPress编辑器中添加

    当我在单击后插入URL时在编辑器中,它按原样显示:

    before clicking defined button

    www.google.com,如代码所示。

    enter image description here

    但没能搞清楚。

    WordPress hook / filter to process link inside a post

    How to set target attribute in tinyMCE

    但无法解决问题。任何帮助都是非常可观的。非常感谢。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Awlad Liton    6 年前

    documentation $plugin_array['droid'] = get_template_directory_uri() . '/assets/js/text-button.js';

    (function() {
            tinymce.create('tinymce.plugins.Droid', {
            init : function(editor, url) {
            editor.addButton('droid_title', {
            title : 'Droid Title',
            cmd : 'droid_title',
            image : '',
            onclick: function() {
                var selected_text = editor.selection.getContent();
                var element = "http://www.google.com";
                var return_text = "";
                return_text = '<a href="'+element+'" class="droid_title"  target="_blank">' + selected_text + '</span>';
                editor.insertContent(return_text);
               }
            });
    

    demo