Estou usando register_taxonomy_for_object_type()
para adicionar o campo Taxonomia da categoria aos uploads de mídia (anexos). Estou usando este código para fazer isso:
add_action('init', 'reg_tax');
function reg_tax() {
register_taxonomy_for_object_type('category', 'attachment');
}
Isso funciona e adiciona um campo de texto simples para Categoria à página Mídia ao exibir uma imagem. O que eu realmente quero é fazer com que ele mostre a Metabox de Categorias real, para que eu possa escolher as Categorias que quero usar, em vez de apenas digitá-las no campo comum. Também descobri que colocar a lesma de uma categoria nesse campo de texto, como my-category-name
acaba sendo exibido como o nome da categoria real, comoMy Category Name
quando é salvo, o que torna o campo de texto simples ainda menos uma opção útil.
Eu estive analisando a add_post_type_support()
função para adicionar Metaboxes e a vi usada para tipos de postagem personalizados, mas não consigo ver se é possível adicionar o mesmo para anexos.
fonte
Respostas:
Edit: 12/09/2017 Veja esta resposta para obter uma solução mais atualizada para isso: Como usar taxonomias em anexos com a nova Biblioteca de Mídia?
Vou responder minha própria pergunta aqui, pois consegui descobrir uma solução para o que tenho tentado fazer. Cheguei à conclusão de que não era possível ativar a Metabox da categoria para anexos. No entanto, descobri que era fácil obter um campo básico para Categorias adicionadas à página de anexos usando
register_taxonomy_for_object_type
eadd_post_type_support
:O campo adicionado mostrou assim:
É apenas um campo de texto simples, mas o que descobri foi que você poderia digitar o nome de uma categoria existente e ser salvo com sucesso quando o anexo fosse atualizado (o único comportamento estranho é que ele retornou a versão normal em vez de lesma após salvar).
Depois que percebi que podia salvar categorias dessa maneira, achei que poderia obter uma lista de todas as categorias disponíveis como caixas de seleção e verificar as que foram selecionadas. Em seguida, usei um pouco de jQuery para capturar os valores das categorias verificadas e colocar todas as lesmas das categorias no campo Categoria. Para tornar isso ainda mais transparente, usei um pouco de CSS para ocultar a linha da tabela que continha o campo Categoria, para que você só veja as caixas de seleção, assim:
Agora que posso adicionar categorias aos anexos de imagens, posso usar algo como:
E puxe as imagens categorizadas em uma página! Exatamente o que eu esperava fazer, não achei que houvesse uma maneira de fazê-lo, mas feliz por ter conseguido descobrir alguma coisa.
Transformei isso em um plugin chamado
WOS Media Categories
que disponibilizei para download no meu site, Suburbia.org.uk , espero que possa ser útil para outra pessoa! Mais uma vez obrigado a quem comentou sobre esta e outras perguntas que fiz aqui, que ajudaram a descobrir!Atualização: adicionei uma correção para permitir que categorias sejam adicionadas enquanto as imagens são carregadas usando o upload em massa do Flash.
fonte
acabou de criar isso, que é uma solução completa para a ligação javascript herky-jerk ao campo de formulário. Como os valores de suas caixas de seleção são passados juntamente com o $ _POST no envio, você pode apenas pegá-los durante o filtro add_image_attachment_fields_to_save e definir os termos do objeto de postagem.
(observe que estou usando uma taxonomia personalizada, e não categorias, portanto, você precisará alterar a matriz $ categories para corresponder à mesma matriz usada quando configura suas caixas de seleção)
Shabam, shabozzle. Desfrutar.
fonte
wp_set_object_terms( $post['ID'], $terms, 'image-format' ); return $post;
. E o script que você postou não executa register_custom_taxonomies. Mas de qualquer maneira roteiro legal. Definitivamente vai usar isso no futuro!Isso é difícil / complicado se você deseja usar a caixa de categoria padrão do WordPress. Por um lado, o metabox não retorna a saída, apenas a repete. Além disso, ele não forneceria o nome correto do campo de entrada, portanto não seria salvo. Uma idéia pode ser usar um preenchimento automático da interface do usuário do jQuery para replicar a funcionalidade da caixa de tags.
No entanto, se você quiser brincar com os campos do editor de mídia, poderá conectar-se a
'attachment_fields_to_edit'
e editar a matriz de campos. O filtro passa dois argumentos para o retorno de chamada: o primeiro argumento é a matriz de campos, o segundo é o objeto de postagem do anexo. Veja aqui para mais detalhes:http://phpxref.ftwr.co.uk/wordpress/nav.html?wp-admin/includes/media.php.source.html#l1025
fonte
attachment_fields_to_edit
e ver como isso acontece.Eu criei um plugin usando o WOS Media Categories do @ RickCurran como ponto de partida. No entanto, as categorias de mídia do WOS, como outros plugins que adicionam suporte de categoria à mídia, na verdade não adicionam uma metabox, eu fiz exatamente isso.
É necessariamente simplificado os metaboxes nas postagens e páginas, mas eu incluí uma capacidade de filtragem que facilita o uso.
Na verdade, estou gerando toda a categoria metabox que você vê nas páginas e postagens, mas oculto os bits que não funcionam na página de mídia por causa da falta de estilo e do javascript ausente.
Congratulo-me com qualquer pensamento que alguém possa ter sobre como tornar o metabox totalmente funcional - algo que pretendo fazer em uma versão posterior.
fonte
Ótimo plugin Rick - muito útil.
Se você mover o gatilho onclick em linha, em vez de vinculá-lo ao onload (e fazer alguns outros pequenos ajustes), ele funcionará também no upload em massa do Flash. Com a versão atual, o Flash carrega após o evento de carregamento do jQuery, para que os objetos ainda não existam.
js revisado:
adicione onclick para inserir no arquivo php:
adicione o ID do formulário do upload em massa ao arquivo css:
}
fonte