Media Upload de WordPress en Frontend

Utilizar el Media Upload de WordPress fuera de su ambiente común es simple y puede ser muy útil si queremos por ejemplo, agregar un editor en el frontEnd, para que los usuarios agreguen artículos con todas las opciones de media que nos da WordPress.

Código de php:


add_action( "wp_enqueue_scripts", "enqueue_media_uploader")
function enqueue_media_uploader() {
  //esta función pone en cola todos scripts que se necesitan para que funcione el media uploader.
  wp_enqueue_media();
  wp_register_script( 'my-script', plugins_url( 'my-scripts.js', __FILE__ ), array( 'jquery' ), '', true );
  wp_enqueue_script( 'my-script' );
}

en el archivo ‘my-scripts.js’


jQuery( document ).ready(function($){
  $('.boton_add_media').on('click', function(e){
    e.preventDefault();
    wp.media.editor.send.attachment;
    wp.media.editor.open();
    return false;
  });
});

Cabe aclarar que el editor debe haber sido creado con la función wp_editor() para que pueda encontrarlo.

WordPress Plugin Boilerplate

Estoy utilizando WordPress-Plugin-Boilerplate para desarrollar plugins, y puedo decir que es una herramienta que sirve mucho para trabajar ordenadamente el código, obtener plugins más prolijos, todos orientados a objetos y fáciles de mantener.

Este es el repositorio en github: https://github.com/DevinVinson/WordPress-Plugin-Boilerplate

Y como no tiene mucha documentación recomiendo accudir a los issues como fuente y area de consultas.

Para arrancar a utilizarlo hay que reemplazar todas las ocurrencias de ‘plugin-name’, ‘Plugin_Name’, con el correspondiente nombre de tu plugin, dentro de los archivos y en los nombres de los archivos.

También como necesitaba usar shorcodes, modifique la clase loader según este comentario del autor.

La idea es separar los archivos en admin y public, que son llamados en la clase genérica dentro del include, que agrupa los hooks, filters y shortcodes en mi caso.

Conectar Jetpack

Tuve problemas con mi instalación para conectar jetpack y lo resolví, primero chequeando en el debug de Jetpack, que me mostraba un problema para acceder al xmlrcp.

Como yo tengo WordPress en otro directorio, intenté haciendo una redirección 301 en el .htaccess.

Redirect 301 /xmlrpc.php http/tusitio.com/directorio_de_wordpress/xmlrcp.php

Desconecté, rehice la conexión y funcionó!