¿Cómo usar wpLink sin editor?

10

Me gustaría crear una opción de tema para agregar un enlace. La carga de estos scripts y la activación del diálogo funcionan bien si el editor wp está presente.

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;
});

¿pero cómo hacerlo para abrir el cuadro de diálogo de enlace sin que esté presente el editor?

Esto es lo que busco

    
pregunta Benn 22.11.2015 - 13:57

1 respuesta

6

No hay manera ética de hacer esto. Pero todavía hay una manera de hacer esto. WordPress escribió el script wpLink teniendo en cuenta que el editor está ahí, pero aún así WordPress lo maneja cuando el editor no está allí (Good Thing)

Considere este ejemplo y suponga que lo estamos usando en la parte delantera del pie de página.

Primero ponga en cola el estilo esencial y los scripts.

function enqueue_scripts_209490() {
    wp_enqueue_script('wplink');
    wp_enqueue_style( 'editor-buttons' );
}
add_action('wp_enqueue_scripts', 'enqueue_scripts_209490');

Ahora enganche esta función en el pie de página Lea los comentarios en línea

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');
  

Nota: no funcionará cuando el usuario no haya iniciado sesión debido a un error js    setUserSetting no está definido y no hay respuesta AJAX cuando el usuario no está   iniciado sesión.

    
respondido por el Sumit 22.02.2016 - 19:35

Lea otras preguntas en las etiquetas