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?
Respuestas:
Eche un vistazo a mi guía aquí: http://www.wpexplorer.com/wordpress-tinymce-tweaks/ , para que pueda ver cómo crear una ventana emergente donde puede seleccionar sus opciones en lugar de insertar un código corto. Si descarga mi complemento Free Symple Shortcodes, también puede ver una implementación en vivo.
En lugar de que el usuario seleccione las publicaciones para insertar, agregue una taxonomía de Categorías a su cartera para que el usuario pueda organizar los elementos en categorías. Luego, puede tener un menú desplegable simple en la ventana emergente para que el usuario seleccione de qué categoría extraer publicaciones.
Esto es mucho más fácil de administrar para el usuario final en el futuro, ya que solo tienen que agregar sus publicaciones a la categoría y el shortcode las mostrará automáticamente sin tener que actualizar manualmente el shortcode para incluir las nuevas publicaciones.
fuente