如何在没有编辑器的情况下使用wpLink?

时间:2015-11-22 作者:Benn

我想创建一个主题选项来添加链接。如果存在wp editor,加载这些脚本并触发对话框可以正常工作。

wp_enqueue_script(\'wplink\');
wp_enqueue_script(\'wpdialogs\');
wp_enqueue_script(\'wpdialogs-popup\');
wp_enqueue_style(\'wp-jquery-ui-dialog\');
wp_enqueue_style(\'thickbox\');

wp_editor(\'\', \'unique_id\', array(\'editor_class\'=>\'hidden\'));



$(\'.add-link\').on("click", function(e){
    e.preventDefault();

      wpLink.open();
      return false;
});
但如何在没有编辑器的情况下打开链接对话框呢?

这就是我想要的

enter image description here enter image description here

1 个回复
最合适的回答,由SO网友:Sumit 整理而成

这样做没有合乎道德的方式。但还是有办法做到这一点。WordPress编写wpLink脚本时,请记住编辑器在那里,但当编辑器不在那里时,WordPress仍会处理该脚本(Good Thing)

考虑这个例子,并假设我们在页脚的前端使用它。

首先将基本样式和脚本排队。

function enqueue_scripts_209490() {
    wp_enqueue_script(\'wplink\');
    wp_enqueue_style( \'editor-buttons\' );
}
add_action(\'wp_enqueue_scripts\', \'enqueue_scripts_209490\');
现在在页脚中钩住此函数Read the inline comments

function display_wplink_html_209490() {
    //Our textarea, click to open the link edior and insert the link in same editor
    echo \'<textarea id="example_209490"></textarea>\';

    // Require the core editor class so we can call wp_link_dialog function to print the HTML.
    // Luckly it is public static method ;)
    require_once ABSPATH . "wp-includes/class-wp-editor.php";
    _WP_Editors::wp_link_dialog(); ?>

    <script type="text/javascript">
        /* We need ajaxurl to send ajax to retrive links */
        var ajaxurl = "<?php echo admin_url( \'admin-ajax.php\'); ?>";
        jQuery(document).ready(function (){
            jQuery(\'#example_209490\').click(function (){
                wpLink.open(\'example_209490\'); /* Bind to open link editor! */
            });
        })
    </script><?php
}
add_action(\'wp_footer\', \'display_wplink_html_209490\');
Note: 当用户由于js错误而未登录时,它将不起作用setUserSetting 未定义,并且在用户未登录时没有AJAX响应。

相关推荐

如何在页面中显示wp_EDITOR

我正在制作我的主题。我在前端使用wp\\U编辑器提交帖子。我通过wp\\u编辑器在特定页面中提交,并以单个页面显示。php。单身。我使用的php<?php the_content(); ?> 问题是,当我将enter键(如br tag)放在一个有多个空行的帖子中时,这些空行就会消失。所有内容均显示,无空行。所以看起来不酷。我的第一语言不是英语,所以我不确定我的表达是否能很好地解释我的意图。我的意思是,我想要这样(A)。但内容如(B)所示。没有空行。。(A) 我叫迈克。你好<哈哈