web-dev-qa-db-fra.com

Extension de xml rpc - meilleures pratiques

J'ai besoin d'ajouter des méthodes personnalisées au fichier Xml-Rpc et j'ai trouvé ce qui suit:


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


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

Des questions:

  • Est-il possible d'avoir la fonction de rappel dans un autre fichier et si oui, comment procédez-vous dans le code?
  • Si j'ai beaucoup de méthodes personnalisées, quelle est la meilleure approche pour gérer cela?

Merci michael

4
user4673

Si j'ai beaucoup de méthodes personnalisées, quelle est la meilleure approche pour gérer cela?

Au lieu de filtrer xmlrpc_methods, vous pouvez étendre la classe wp_xmlrpc_server et définir votre classe par défaut avec le filtre wp_xmlrpc_server_class.

// 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

Cela n’a pas grand-chose à voir avec WordPress, mais seulement avec le générique PHP et vos préférences personnelles en matière de codage.

Est-il possible d'avoir la fonction de rappel dans un autre fichier et si oui, comment procédez-vous dans le code?

Comme pour tout code PHP, vous pouvez le scinder en fichiers et le charger avec include .

Si j'ai beaucoup de méthodes personnalisées, quelle est la meilleure approche pour gérer cela?

Quant à moi (si vous n'utilisez pas de classes), un seul fichier avec toutes les fonctions organisées (par exemple par objectif ou par alphabet) fera l'affaire.

1
Rarst

Si vous souhaitez utiliser d'autres fonctions WordPress existantes qui ne sont pas incluses dans leur XML-RPC, essayez d'utiliser le plug-in Étendre l'API XML-RPC .

Ce plugin a été conçu pour faciliter l'intégration de WordPress à des plateformes externes et à du code externe. Bien que l’API existante WordPress XML-RPC offre de nombreuses fonctionnalités, elle ne fournit pas tout. Ce plugin permet d'appeler presque toutes les fonctions WordPress standard via une API.

Sinon, téléchargez ce plugin et utilisez le code comme exemple ... cela devrait vous permettre de comprendre comment ajouter vos propres plugins au XML-RPC.

0
Ramsay