Estoy codificando un widget y me gustaría que el usuario pueda elegir un enlace como puede al editar una publicación o página normal (cuando hace clic en el pequeño icono de enlace y obtiene la funcionalidad de búsqueda AJAX en la ventana emergente ) ¿Alguien sabe cómo hago que esto funcione? Tengo un botón HTML que me gustaría adjuntar y hacer clic incluso en, y un campo para que ingrese el valor.
En class-wp-editor.php encontré algunas cosas interesantes y me pregunté si podría necesitar estos archivos ...?
wp_enqueue_script('wp-fullscreen');
wp_enqueue_script('wplink');
Al llamar fullscreen.link();
, como el archivo mencionado anteriormente, me sale este error:
Uncaught ReferenceError: wpActiveEditor is not defined
..y estoy perplejo por ahora, porque el JS que hace referencia a esa variable me parece una locura.
¿Te importaría señalarme en la dirección correcta? Me encantaría hacer que esto funcione, ¡creará una interfaz de usuario excelente para mis widgets!
------editar-------
No es mucho código hasta ahora, aparte de las inclusiones de script que he establecido anteriormente;
<label for="<?php echo $this->get_field_name('link'); ?>">Link URL (including http://) : </label>
<input type="text" id="<?php echo $this->get_field_id('link'); ?>" name="<?php echo $this->get_field_name('link'); ?>" value="<?php if(isset($link)) echo esc_attr($link); ?>" class="widefat" />
<button class="secondary" id="choose_link">Link Browser</button>
..la parte del JS que se supone que activa el script de enlace para abrir;
linkBrowserButton.on("click", function(e){
e.preventDefault();
fullscreen.link();
});
wp_editor()
?Respuestas:
Invoco el diálogo de enlace dentro de la clase metabox que uso para el desarrollo. Es un poco hacky, pero se puede hacer, hasta que se desarrolle algo más robusto .
Puede invocar el cuadro de enlace colocando primero los js requeridos y luego interactuando con los métodos de archivos wp-link js.
Asegúrate de haber puesto en cola wp-link
1 /
wp_enqueue_script( 'wp-link' );
2 / Configura tu interfaz de usuario. Usualmente uso un botón para invocar el diálogo de enlace y un campo de texto para manejar los enlaces URL.
3 / Invocar diálogo de enlace
4 // secuencias de comandos en cola. Agregue lo siguiente a su archivo functions.php, y ajuste los nombres / rutas de archivo para adaptarse.
Debería hacerlo. Uso el mismo enfoque en mi clase metabox y parece funcionar bien.
fuente
Primero, lo construiría de manera similar a la funcionalidad de enlace en WordPress: un campo de texto de entrada, resultados, seleccionar funcionalidad y botón de enviar (agregar enlace).
Ajax: esto se dispararía cuando se ingresa texto en la entrada, devolviendo un conjunto de resultados basados en el término de búsqueda. Eche un vistazo a lo que hicimos con nuestro complemento de búsqueda rápida , WP Jarvis. Solo necesita configurar la llamada ajax para apuntar a ajaxurl (admin-ajax.php) y establecer un enlace de acción en su php para ejecutar la consulta y hacer eco de los resultados en formato json. Desea que los resultados incluyan título, tipo posterior y enlace permanente para cada resultado. Lea más sobre ajax en complementos .
Finalmente, seleccionar el resultado que le interesa tomaría el enlace permanente del objeto json y lo insertaría en el campo del widget.
Sé que esta no es una respuesta completa, pero espero que esto ayude.
fuente