Un evento raro: quiero hacer algo en WordPress pero no tengo idea de cómo hacerlo y la búsqueda literalmente no resulta nada.
Cuando inserta una imagen en una publicación, obtiene opciones de alineación: 'ninguna', 'izquierda', 'derecha', 'centro'. Esto da como resultado que la imagen se inserte con una clase CSS relacionada con la alineación, como 'alignleft', 'alignright' o 'aligncenter'.
Excelente.
¿Qué pasaría si mi tema fuera un poco más complejo y quisiera agregar un par de opciones aquí que, al igual que las opciones principales, simplemente agregarían una nueva clase CSS a las imágenes insertadas? Por ejemplo, ¿una opción de 'margen derecho' que podría diseñar con un CSS sofisticado para obtener diseños más complejos?
¿Alguna sugerencia sobre dónde podría comenzar?
Respuestas:
Estoy de acuerdo con david-binda - ¡gran pregunta! Me he encontrado con este problema en varias ocasiones y he encontrado una solución que funciona bastante bien. Si bien me gusta la idea de agregar un código corto para insertar la imagen con clases como lo sugiere pavlos-bizimis , no creo que realmente resuelva el problema con tanta elegancia como agregar opciones a la ventana emergente de edición de imágenes (por ejemplo, probablemente tenga que envuelva la imagen en su shortcode a menos que prefiera tener que ingresar una ID de imagen manualmente). Además, para algunos de mis clientes, incluso un código corto es demasiado complicado (en cuyo caso, podría vincularlo a un botón TinyMCE por supuesto).
De todos modos,
sinmás preámbulos, aquí están mis cinco centavos. Utilizo esta solución en un complemento de presentación de diapositivas que me da las opciones para incluir / excluir la imagen de la presentación de diapositivas y establecer un color de fondo para una superposición que muestra el contenido de algunos metacampos de imagen. Básicamente se conectaattachment_fields_to_edit
yattachment_fields_to_save
para agregar los campos de entrada y guardar los datos del formulario respectivamente. Estos datos estarán disponibles como meta meta estándar para la publicación adjunta (es decir, la imagen que está editando). Esto es genial ya que es fácil de recuperar usandoget_post_meta()
como de costumbre. Y también debe agregar un filtrowp_get_attachment_image_attributes
oimage_send_to_editor
que le permita agregar la clase apropiada automáticamente cada vez que se emite la imagen.He modificado ligeramente el código para facilitar la lectura, por lo que algunas partes pueden estar incompletas / erróneas.
ACTUALIZACIÓN : acabo de copiar este código para usarlo como repetitivo en un proyecto en el que estoy trabajando. Como probablemente pueda ver al mirar el código, me gusta almacenar mis claves meta de publicación en constantes definidas. Cuando hago esto, siempre antepongo el valor
_
para evitar que se muestre en el editor de metacampos, pero esta práctica puede causar algunos problemasattachment_fields_to_save
. Las claves en la$form_fields
matriz no pueden comenzar_
, así que tenga cuidado de usar diferentes claves para la matriz y los metavalores o recorte los guiones bajos cuando trabaje con campos de datos adjuntos. ComoSLIDESHOW_EXCLUDE_IMAGE_KEY
ni siquiera está definido en mi ejemplo, esto probablemente no sea un gran problema al copiar el código, pero pensé en mencionarlo de todos modos. Me tomó un tiempo resolver esto (y por segunda vez, en eso).fuente
Buena pregunta. Y esta pregunta tiene su solución. Tal vez el siguiente código es demasiado largo, pero no puede ser más corto. El punto es que puede eliminar el enlace wp_footer y wp_admin_footer para la función wp_print_media_templates y reemplazarlo con su propia función wp_print_media_templates con opciones personalizadas. Simplemente colocando el código a continuación en su functions.php anulará la función original y le permitirá modificar las clases después de la línea con comentario HTML <! - CONFIGURE SUS CLASES AQUÍ -> Las clases se insertan en el código abreviado de la galería de esta manera:
el valor establecido como MyClass1 produce alignMyClass1.
Si desea establecer clases sin el prefijo "alinear", tendría que modificar javascript insertando código corto en el área de texto de contenido de la publicación y puede ser demasiado complicado en comparación con cambiar el nombre de sus clases en CSS. Enyoj!
fuente
Tal vez debería crear un código corto para insertar la imagen con atributos de clase. Lo he visto en muchos temas comerciales.
fuente
Puede usar la ID de imagen única para diseñar imágenes específicas individualmente.
fuente