it-swarm.com.de

Xml rpc erweitern - Best Practice

Ich muss der Xml-Rpc-Datei benutzerdefinierte Methoden hinzufügen und habe Folgendes gefunden:


// Custom plugins add_filter('xmlrpc_methods', 'custom_xmlrpc_methods');


function custom_xmlrpc_methods($methods) { $methods['myMethod'] = 'my_function'; return $methods; }

Fragen:

  • Ist es möglich, die Rückruffunktion in einer anderen Datei zu haben und wenn ja, wie machen Sie das im Code?
  • Wenn ich viele benutzerdefinierte Methoden habe, wie gehe ich am besten damit um?

Danke Michael

4
user4673

Wenn ich viele benutzerdefinierte Methoden habe, wie gehe ich am besten damit um?

Anstatt xmlrpc_methods zu filtern, können Sie die Klasse wp_xmlrpc_server erweitern und Ihre Klasse mit dem Filter wp_xmlrpc_server_class als Standard festlegen.

// Webeo_XMLRPC.php
include_once(ABSPATH . WPINC . '/class-IXR.php');
include_once(ABSPATH . WPINC . '/class-wp-xmlrpc-server.php');

class Webeo_XMLRPC extends wp_xmlrpc_server {
    public function __construct() {
        parent::__construct();

        $methods = array(
            'webeo.getPost' => 'this:webeo_getPost',
            'webeo.getPosts' => 'this:webeo_getPosts'
        );

        $this->methods = array_merge($this->methods, $methods);
    }

    public static function webeo_getName() {
        return __CLASS__;
    }

    public function sayHello($args) {
        return 'Hello Commander!';
    }

    public function webeo_getPost($args) {
        // do the magic
    }

    public function webeo_getPosts($args) {
        // do the magic
    }
}

add_filter('wp_xmlrpc_server_class', array('Webeo_XMLRPC', 'webeo_getName'));
8
rofflox

Dies hat nicht wirklich viel mit WordPress zu tun, nur mit generischem PHP und Ihren persönlichen Präferenzen beim Codieren.

Ist es möglich, die Rückruffunktion in einer anderen Datei zu haben und wenn ja, wie machen Sie das im Code?

Wie bei jedem PHP Code können Sie ihn zwischen Dateien aufteilen und mit include laden.

Wenn ich viele benutzerdefinierte Methoden habe, wie gehe ich am besten damit um?

Was mich betrifft (wenn Sie keine Klassen verwenden), reicht eine einzelne Datei mit allen Funktionen aus, die auf irgendeine Weise organisiert sind (zum Beispiel nach dem Zweck des Alphabets).

1
Rarst

Wenn Sie andere vorhandene WordPress-Funktionen verwenden möchten, die nicht in ihrem XML-RPC enthalten sind, verwenden Sie das Plugin XML-RPC-API erweitern .

Dieses Plugin wurde entwickelt, um die Integration von WordPress in externe Plattformen und externen Code zu vereinfachen. Die vorhandene WordPress XML-RPC-API bietet zwar viele Funktionen, aber nicht alles. Mit diesem Plugin kann nahezu jede Standard-WordPress-Funktion über die API aufgerufen werden.

Andernfalls laden Sie das Plugin herunter und verwenden Sie den Code als Beispiel. Es sollte für Sie ausreichend sein, um zu verstehen, wie Sie dem XML-RPC Ihre eigenen Plugins hinzufügen.

0
Ramsay