• Не могу переопределить функцию, из так называемых «Pluggable Functions», список которых есть на этой странице: http://codex.wordpress.org/Pluggable_Functions
    Я так понимаю, что эти функции загружаются после того, как загружны плагины, поэтому их можно перепределить в своих плагинах.
    Делаю такой плагин:

    <?php
    /*
    Plugin Name: april
    */
    function get_userdata()
    {
    	echo 'Мухаха! Такой функции больше не существует!';
    }
    ?>

    но в результате при попытке активировать плагин я получаю в админ-модуле вордпрессе такое сообщение:

    Plugin could not be activated because it triggered a fatal error.

    Fatal error: Cannot redeclare get_userdata() (previously declared in Z:\home\localhost\www\wordpress\wp-includes\pluggable.php:103) in Z:\home\localhost\www\wordpress\wp-content\plugins\april.php on line 10

    Что я сделал не так?
    Версия вордпресса 3.1

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Дело в том, что в момент активации плагина ещё существует функция, определённая в wp-includes/pluggable.php. Нужно добавить проверку:

    <?php
    /*
    Plugin Name: april
    */
    if ( !function_exists('get_userdata') ) :
    function get_userdata()
    {
    	echo 'Мухаха! Такой функции больше не существует!';
    }
    endif;
    ?>

    Ничего не понял 🙁
    Я так понимаю, что на странице «Pluggable Functions» находятся функции, которые можно переопределять в своих плагинах.В первом абзаце так и написано: «These functions let you override certain core functions via plugins. » И в функции, например этой: http://codex.wordpress.org/Function_Reference/set_current_user есть надпись, что её можно переопределить в плагине. Что я и пытаюсь сделать.
    Что я не понимаю в этих функциях?

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Я так понимаю, что на странице «Pluggable Functions» находятся функции, которые можно переопределять в своих плагинах.

    Верно. Вы пробовали активировать предложенный мной вариант?

    Нет. Но результат будет таким: Ошибки не будет, а функция get_userdata() останется такой же, как и была в вордпрессе до моего плагина. А мне нужно, чтобы эта функция заменилась на мою. Разве не так?

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Разве не так?

    Нет. Вы попробуйте 🙂

    Нет. Вы попробуйте 🙂

    Уже пробовал 🙂 Переустанавливал свой вордпресс, пока не понял, в чём проблема.
    Sergey Biryukov правильный совет дал, спасибо!

Просмотр 6 ответов — с 1 по 6 (всего 6)

Тема «Как переопределить Pluggable Functions» закрыта для новых ответов.