Estoy trabajando en un complemento que crea una "cartera" de tipo de publicación personalizada junto con un código corto para insertar en cualquier página o publicación.
El shortcode es: [portfolio option1=“1” option2=“0” option3=“1” ]
Y funciona bien, muestra todas las publicaciones personalizadas a través de personalizadas WP_query
. Pero quiero ir más allá.
Cree un botón personalizado junto a upload media
para generar una salida de shortcode de cartera, donde el usuario puede seleccionar qué publicación incluir y definir todas las opciones. Entonces la salida sería:[portfolio option1=“1” option2=“0” option3=“1” ids=“12,311,432,443,” ]
Este es el código de un botón que encontré en wp's media.php:
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>';
}
Y hace lo que hace. Pero, ahora, ¿cuál es la mejor manera de modificar el contenido de la ventana creada? Aquí hay una foto de cómo lo veo, es mejor que cualquier descripción:
¿Cuán potencialmente complicado y complicado sería lograr esto? No sé en qué dirección debo mirar, ¿es eso posible? Indique cualquier sugerencia sobre dónde debo comenzar a buscar soluciones.
PD: ¿O tal vez estoy equivocado en primer lugar y debería considerar usar ThickBox? Pero quiero mantener el aspecto nativo de la ventana emergente de carga de medios.
¡Salud!
EDITAR:
Bueno, quizás una solución mucho mejor sería usar el patrón de código corto de la galería nativa. No es difícil agregar un nuevo elemento de menú en la ventana de carga de medios, como se explica por ejemplo aquí .
Entonces, la visión final es algo como esto:
Debe hacerse con Backbone.js, creo. Pero la pregunta principal, ¿puede manipular publicaciones personalizadas en lugar de imágenes?