Estoy buscando adaptar un complemento similar a un foro existente que no tiene facilidad para adjuntar medios.
El complemento funciona como un tipo de publicación personalizada, por lo que sería tan "simple" como adjuntar una imagen a una publicación.
Solo me preocupa adjuntar imágenes en lugar de cualquier tipo de archivo, pero el complemento sí utiliza wp_editor
y, como tal, la solución debería integrarse de alguna manera con eso. No estoy demasiado preocupado por crear un botón tinyMCE, siempre que la solución sea capaz de insertar una miniatura de la imagen en el área de texto tinyMCE.
Tenga en cuenta que me refiero al front-end de mi sitio web en lugar del área de administración.
En una situación absolutamente ideal, me gustaría que ocurriera este escenario:
- El usuario hace clic en "Hacer una pregunta"
- El uso ingresa los detalles de su publicación
- El usuario hace clic en un botón en la interfaz tinyMCE que, de forma similar a StackExchange, le pide al usuario que cargue un archivo.
- Luego, el sistema inserta la miniatura del tamaño correcto en el área de texto tinyMCE, después de haber procesado el archivo en este tamaño de miniatura
- Hacer clic en esta imagen debería ofrecer la misma funcionalidad que un archivo adjunto de imagen en una publicación
- El usuario puede hacer clic nuevamente para insertar una nueva imagen
- El usuario también puede eliminar la imagen del área de texto tinyMCE según sea necesario
Sin embargo, estoy feliz de que el botón tinyMCE sea periférico; si un cuadro de "carga de archivos" es significativamente más fácil, está bien.
Me encontré con este enlace, pero siempre estoy preocupado por leer artículos de WordPress en t'interwebs, ya que nunca estoy muy seguro de cuán seguros son, ni soy un experto en seguridad de php por ningún tramo de la imaginación.
Gracias por adelantado,
wp_editor()
función, ¿por qué no solo usar el grueso de carga de medios que está incluido en él? No he usado elwp_editor
front-end, pero hay algunas personas que lo han conseguido con éxito trabajando con cargas de imágenes, mira aquí , por ejemplo ...wp_editor
las cargas multimedia de los usuarios daría a los usuarios de cualquier nivel acceso a toda mi biblioteca multimedia? No quisiera que ese fuera el caso, solo para que ellos carguen el suyo.media-upload.php
fuente en mucho tiempo, pero estoy bastante seguro de que hay un filtro en media_upload_tabs donde puede deshabilitar la pestaña "Biblioteca de medios". Lo miraré y veré ...Respuestas:
Creo que la forma más fácil, ya que ya está utilizando la
wp_editor
función, será incluir los botones de medios en la instancia de WP_Editor, de esta manera tendrá las funciones nativas, incluido el botón "Insertar en la publicación", incorporado gratis.La forma en que haces esto obviamente depende del complemento con el que estás tratando de trabajar. Sin embargo, esto debería ayudarlo a comenzar. Incluya un código como este en una plantilla de página para mostrar el editor, y obtendrá un editor en su página. Incluir esto en un formulario y procesar los resultados es otro paso que no se detalla aquí.
Definir el ID de la publicación es probablemente la parte crítica, y cómo lo hagas dependerá de la lógica de tu funcionalidad. Yo sugeriría:
fuente
Quizás esta no sea su solución ideal, pero vale la pena intentarlo. Lo conseguí buscando en Google pero desafortunadamente olvidé la url. La parte adjunta es similar a la del artículo @goldenapples.
Aquí está la función básica.
La función ajax
El marcado
Espero que esto ayude
fuente
wp_handle_upload
coloca el archivo cargado en el directorio wp-content / uploads.wp_insert_attachment
captura la información del archivo y la guarda como un archivo adjunto en la tabla wp_posts.wp_generate_attachment_metadata
ywp_update_attachment_metadata
hace lo que dice. La segunda parte es la función ajax que procesa el formulario que se muestra en el marcado, utilizando laattach uploads
función.