Estou trabalhando em um plug-in que cria o tipo de postagem personalizado "portfólio", juntamente com o shortcode para inserir em qualquer página ou postagem.
O código de acesso é: [portfolio option1=“1” option2=“0” option3=“1” ]
E funciona muito bem, mostra todas as postagens personalizadas via personalizada WP_query
. Mas eu quero ir mais longe.
Crie um botão personalizado ao lado de upload media
para gerar uma saída de código curto do portfólio, onde o usuário pode selecionar qual postagem incluir e definir todas as opções. Portanto, a saída seria:[portfolio option1=“1” option2=“0” option3=“1” ids=“12,311,432,443,” ]
Este é o código para um botão que encontrei no arquivo media.php do wp:
add_action( 'media_buttons', array( $this, 'media_buttons' ) );
public function media_buttons($editor_id = 'content') {
$post = get_post();
if ( ! $post && ! empty( $GLOBALS['post_ID'] ) )
$post = $GLOBALS['post_ID'];
wp_enqueue_media( array(
'post' => $post
) );
$img = '<span class="wp-media-buttons-icon"></span> ';
echo '<a href="#" id="insert-media-button" class="button insert-media add_media" data-editor="' . esc_attr( $editor_id ) . '" title="' . esc_attr__( 'Add Portfolio' ) . '">' . $img . __( 'Add Portfolio' ) . '</a>';
}
E faz o que faz. Mas, agora, qual é a melhor maneira de modificar o conteúdo da janela criada? Aqui está uma imagem de como eu o vejo, é melhor que qualquer descrição:
Quão potencialmente complicado e complicado isso seria para conseguir? Não sei em que direção devo procurar, isso é possível? Por favor, informe todas as sugestões de onde devo começar a procurar a solução.
PS: Ou talvez eu esteja errado em primeiro lugar e deva considerar o uso do ThickBox? Mas eu quero manter a aparência nativa do pop-up de upload de mídia.
Felicidades!
EDITAR:
Bem, talvez uma solução muito melhor seria usar o padrão de código de acesso da galeria nativa. Não é difícil adicionar um novo item de menu na janela de upload de mídia, como explicado por exemplo aqui .
Portanto, a visão final é algo como isto:
Isso deve ser feito com o Backbone.js, eu acredito? Mas a questão principal, ele pode manipular postagens personalizadas em vez de imagens?