Um evento raro - eu quero fazer algo no WordPress, mas não tenho idéia de como fazê-lo, e a pesquisa resulta literalmente em nada.
Ao inserir uma imagem em uma postagem, você obtém as opções de alinhamento: 'none', 'left', 'right', 'center'. Isso resulta na inserção de uma imagem com uma classe CSS relacionada ao alinhamento, como 'alignleft', 'alignright' ou 'aligncenter'.
Ótimo.
E se meu tema fosse um pouco mais complexo e eu quisesse adicionar algumas opções aqui que, assim como as opções principais, adicionariam apenas uma nova classe CSS às imagens inseridas? Por exemplo - uma opção de 'margem direita' que eu poderia estilizar com CSS sofisticado para obter layouts mais complexos?
Alguma dica de onde eu poderia começar?
Respostas:
Concordo com david-binda - ótima pergunta! Eu já me deparei com esse problema em várias ocasiões e encontrei uma solução que funciona muito bem. Embora eu goste da ideia de adicionar um código de acesso para inserir a imagem nas classes, conforme sugerido por pavlos-bizimis , não acho que realmente resolva o problema com a mesma elegância de adicionar opções ao pop-up de edição de imagens (por exemplo, você provavelmente precisaria agrupe a imagem em seu código de acesso, a menos que você prefira ter que inserir um ID de imagem manualmente). Além disso, para alguns de meus clientes, mesmo um código curto é muito complicado (nesse caso, você pode vinculá-lo a um botão TinyMCE, é claro).
Enfim,
semmais delongas - aqui estão meus cinco centavos. Eu uso essa solução em um plug-in de apresentação de slides, que me oferece as opções para incluir / excluir a imagem da apresentação de slides e definir uma cor de plano de fundo para uma sobreposição, mostrando o conteúdo de alguns meta-campos de imagem. Basicamente, ele se conecta aattachment_fields_to_edit
eattachment_fields_to_save
para adicionar os campos de entrada e salvar os dados do formulário, respectivamente. Esses dados estarão disponíveis como meta de postagem padrão para a postagem de anexo (ou seja, a imagem que você está editando). Isso é ótimo, pois é fácil recuperar usandoget_post_meta()
como de costume. E você também deve adicionar um filtrowp_get_attachment_image_attributes
ouimage_send_to_editor
que permita adicionar a classe apropriada automaticamente sempre que a imagem estiver sendo impressa.Modifiquei um pouco o código para facilitar a leitura, portanto, algumas partes podem estar incompletas / incorretas.
ATUALIZAÇÃO : Acabei de copiar esse código para usá-lo como padrão em um projeto em que estou trabalhando. Como você provavelmente pode perceber olhando para o código, eu gosto de armazenar minhas meta-chaves pós em constantes definidas. Quando faço isso, sempre prefixo o valor com
_
para impedir que ele seja exibido no editor de meta campos, mas essa prática pode causar alguns problemasattachment_fields_to_save
. As chaves na$form_fields
matriz não podem ser iniciadas_
, portanto, tenha cuidado ao usar chaves diferentes para a matriz e os valores meta ou aparar os sublinhados ao lidar com campos de anexo. ComoSLIDESHOW_EXCLUDE_IMAGE_KEY
nem sequer está definido no meu exemplo, isso provavelmente não é grande coisa ao copiar o código, mas pensei em mencioná-lo de qualquer maneira. Demorei um pouco para descobrir isso (e pela segunda vez).fonte
Boa pergunta. E esta pergunta tem sua solução. Talvez o código abaixo seja muito longo, mas não possa ser mais curto. O ponto é que você pode remover o gancho wp_footer e wp_admin_footer da função wp_print_media_templates e substituí-lo por sua própria função wp_print_media_templates por opções personalizadas. Basta colocar o código abaixo em seu functions.php irá substituir a função orginial e permite que você modifique as classes após a linha com comentários HTML <! - CONFIGURAÇÃO suas aulas aqui -> Classes são inseridos galeria shortcode desta forma:
o valor definido como MyClass1 produz alignMyClass1.
Se você deseja definir classes sem o prefixo "align", é necessário modificar o javascript, inserindo o código curto na área de texto do conteúdo da postagem, e pode ser muito complicado comparar com a renomeação de suas classes no CSS. Enyoj!
fonte
Talvez você deva criar um código de acesso para inserir a imagem com atributos de classe. Eu já vi isso em muitos temas comerciais.
fonte
Você pode usar o ID da imagem exclusivo para estilizar imagens específicas individualmente.
fonte