user
  • 0
Гуру

Расширение xml rpc — лучшая практика

  • 0

Мне нужно добавить пользовательские методы в файл Xml-Rpc, и я нашел следующее:

<br></br><font>
// Custom plugins<font>
add_filter('xmlrpc_methods', 'custom_xmlrpc_methods');<p></p><font>
<font>
<p>function custom_xmlrpc_methods($methods) { $methods['myMethod'] = 'my_function'; return $methods; } </p> 

Вопросы:

  • Возможно ли иметь функцию обратного вызова в другом файле, и если да, то как это сделать в коде?
  • Если у меня много пользовательских методов, как лучше всего справиться с этим?

Спасибо, Майкл.

Share
  1. Если у меня много пользовательских методов, как лучше всего справиться с этим?

    Вместо фильтрации xmlrpc_methods вы можете расширить wp_xmlrpc_server класс и установить класс по умолчанию с помощью фильтра 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'));
    
    • 0
  2. На самом деле это не имеет ничего общего с WordPress, просто общий PHP и ваши личные предпочтения в кодировании.

    Возможно ли иметь функцию обратного вызова в другом файле, и если да, то как это сделать в коде?

    Как и любой PHP-код, вы можете разделить его на файлы и загрузить их с расширением include .

    Если у меня много пользовательских методов, как лучше всего справиться с этим?

    Как по мне (если вы не используете классы), то подойдет один файл со всеми функциями, организованными каким-либо образом (например, по назначению или алфавиту).

    • 0
  3. Если вы хотите использовать другие существующие функции WordPress, которые не включены в их XML-RPC, попробуйте использовать плагин Extend XML-RPC API.

    Этот плагин был создан, чтобы облегчить интеграцию WordPress с внешними платформами и внешним кодом. Хотя существующий WordPress XML-RPC API предоставляет множество функций, он не предоставляет всего. Этот плагин позволяет вызывать почти все стандартные функции WordPress через API.

    В противном случае загрузите этот плагин и используйте код в качестве примера… этого должно быть достаточно, чтобы вы поняли, как добавлять свои собственные плагины в XML-RPC.

    • 0

Оставить ответ

You must login to add an answer.