Sto lavorando a un plugin che crea un tipo di post personalizzato "portfolio" insieme a shortcode da inserire in qualsiasi pagina o post.
Lo shortcode è: [portfolio option1=“1” option2=“0” option3=“1” ]
E funziona benissimo, mostra tutti i post personalizzati tramite personalizzato WP_query
. Ma voglio andare oltre.
Crea un pulsante personalizzato accanto upload media
per generare un output shortcode del portfolio, in cui l'utente può selezionare quale post includere e definire tutte le opzioni. Quindi l'output sarebbe:[portfolio option1=“1” option2=“0” option3=“1” ids=“12,311,432,443,” ]
Questo è il codice per un pulsante che ho trovato nel media.php di 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 fa quello che fa. Ma ora qual è il modo migliore per modificare il contenuto della finestra creata? Ecco una foto di come la vedo, è meglio che qualsiasi descrizione:
Quanto potenzialmente complicato e difficile sarebbe questo da realizzare? Non so in che direzione dovrei guardare, è possibile? Si prega di avvisare eventuali suggerimenti dove dovrei iniziare a scavare per la soluzione.
PS: O forse mi sbaglio in primo luogo e dovresti considerare l'utilizzo di ThickBox? Ma voglio mantenere l'aspetto nativo del popup di caricamento dei media.
Saluti!
MODIFICARE:
Bene, forse una soluzione molto migliore sarebbe quella di utilizzare il modello di shortcode della galleria nativa. Non è difficile aggiungere una nuova voce di menu nella finestra di caricamento dei file multimediali, come spiegato qui ad esempio .
Quindi la visione finale è qualcosa del genere:
Deve essere fatto con Backbone.js credo? Ma la domanda principale, può manipolare post personalizzati anziché immagini?