Intereting Posts
Настройка WordPress Media Manager – окно мультимедиа Каков параметр $ menu, используемый в wp_nav_menu ()? Удаление кнопок панели инструментов WordPress Редактировать / удалить wp_dashboard_recent_drafts () Разная структура константы для каждой категории Как настроить эскиз для темы (для детей) Отобразить имя второй категории пользовательского типа сообщений без ошибки, если его значение равно null? Что лучше всего подходит для написания / использования пользовательских классов PHP в теме? Как удалить страницы меню администратора, вставленные плагинами? Помните, что не работает с www? Как CPT в WordPress имеет страницу 2 без ошибок? Перенаправление каждого экземпляра страниц шаблона автора на страницы пользовательских авторов Страницы верхнего уровня переадресовываются на главную страницу! Фрагмент после каждого изображения Разрешенный размер памяти 33554432 байт исчерпан (пытался выделить 9967617 байт) в … \ wp-includes \ functions.php

Перезаписать функцию XMLRPC по умолчанию из плагина

Я хочу перезаписать вызов «metaWeblog.newMediaObject» xmlrpc, чтобы файл был удален удаленно. Из mw_newMediaObject в классе-wp-xmlrpc-server.php, я вижу, что есть крючок:

do_action('xmlrpc_call', 'metaWeblog.newMediaObject'); 

Поэтому я должен был что-то сделать в своем плагине:

 add_action ('xmlrpc_call', 'myWewMediaObject'); function myWewMediaObject ($method) { if ($method=='metaWeblog.newMediaObject') { //perform some custom action } } 

Однако, поскольку вызов do_action находится в начале функции mw_newMediaObject, я не уверен, как остановить выполнение после того, как моя функция плагина существует.

Пожалуйста, дайте мне знать, если я на правильном пути, и если есть другой способ сделать это.

Solutions Collecting From Web of "Перезаписать функцию XMLRPC по умолчанию из плагина"

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

Если вы хотите полностью заменить эту функцию, я рекомендую два разных варианта:

1. Не используйте его

Просто определите свой собственный метод XMLRPC ( myNamespace.newMediaObject ) и вызовите это вместо этого.

2. Замените его

Вы можете привязать фильтр xmlrpc_methods же, как и добавить новый метод, и можете заменить обратный вызов для metaWeblog.newMediaObject :

 add_filter( 'xmlrpc_methods', 'myMediaHandler' ); function myMediaHandler( $methods ) { $methods[ 'metaWeblog.newMediaObject' ] = 'myMediaObject'; return $methods; } function myMediaObject( $args ) { // ... custom functionality } 

Просто не забудьте сохранить тот же формат с массивом $ args и вызывать / применять те же действия / фильтры в своем пользовательском методе, чтобы вы не сталкивались с неожиданностями.