¿Cómo envío datos a un plugin de wordpress?

2 minutos de lectura

Quiero crear un complemento de wordpress que pueda capturar solicitudes POST/GET a una determinada URL desde el exterior, de modo que pueda tener datos POST de código PHP externo en el complemento de wordpress, que el complemento puede manejar internamente.

No quiero crear publicaciones de blog o páginas desde el exterior, sé que la interfaz XML-RPC existe para eso. Estoy hablando de publicar datos desde el exterior en wordpress y luego manejarlos más dentro de un complemento.

Supongo que también podría conectarme directamente a la base de datos de WP, pero probablemente no sea una solución muy limpia y podría romperse si actualizo WP.

  • ¿Qué quiere decir capturar la solicitud POST/GET? ¿No es $_POST/$_GET?

    – xdazz

    22 de agosto de 2011 a las 7:27

Como ya sabe sobre WordPress XMRPC: su complemento puede registrar funciones propias para XMLRPC que escuchan la solicitud en ese momento. Puede enviar una solicitud POST al punto final XMLRPC y la función del complemento se activará en ese momento.

El siguiente ejemplo de código es una clase de complemento simple que registra una función en el punto final XMLRPC my.recieve. Muestra cómo se registra la función de devolución de llamada en esa cadena:

/**
 * XML RPC Plugin
 */
return RecievePostPlugin::bootstrap();

class RecievePostPlugin
{
    private static $instance;
    public static function bootstrap()
    {
        if (null === $this->instance)
             $this->instance = new __CLASS__;
        return $this->instance; 
    }
    public function __construct()
    {
        add_filter('xmlrpc_methods', array($this, 'addXMLRPCActions'));
    }
    public function addXMLRPCActions(array $methods)
    {
        $methods['my.recieve'] = array($this, 'recieveXMLRPCAction');
        return $methods;
    }
    public function recieveXMLRPCAction(array $arguments)
    {
       // your code here, POST can be accessed via $_POST
    }
}

Si no le gusta la sobrecarga de XMLRPC, simplemente puede crear un archivo PHP como parte de su complemento y solicitarlo. Luego, debe tener cuidado de cargar todas las funciones de WP que desee usar (por ejemplo, acceso a la base de datos, etc.).

Puede crear una regla de reescritura, redirigiendo alguna URL bonita y fantasiosa a un archivo en el directorio de su complemento. Y ese archivo tendrá datos de $_POST. Desde el pagina wordpress describiendo WP_Rewrite:

function feed_dir_rewrite( $wp_rewrite ) {
    $feed_rules = array(
        'index.rdf' => 'index.php?feed=rdf',
        'index.xml' => 'index.php?feed=rss2',
        '(.+).xml' => 'index.php?feed=' . $wp_rewrite->preg_index(1)
    );

    $wp_rewrite->rules = $feed_rules + $wp_rewrite->rules;
}

// Hook in.
add_filter( 'generate_rewrite_rules', 'feed_dir_rewrite' );

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad