Правильный способ проверить системные требования для плагина WordPress - PullRequest
1 голос
/ 28 марта 2011

Мне любопытно, как правильно запретить пользователю активировать мой плагин, если его система не отвечает определенным требованиям. Выполнять проверки легко, и мне не нужна помощь с этим, мне более интересно, как сказать WordPress выйти и отобразить сообщение об ошибке.

В настоящее время я пробовал оба exit($error_message) и die($error_message) в методе ловушки активации. Пока отображается мое сообщение, а плагин не активирован, также отображается сообщение о фатальной ошибке (см. Изображение ниже).

enter image description here

Кто-нибудь знает лучший способ, который бы отображал моё сообщение в правильном поле ошибки без фатальной ошибки, просто для новых пользователей это выглядит очень плохо.

Спасибо за любую помощь заранее.

Ответы [ 2 ]

1 голос
/ 04 июня 2012

Это немного недокументировано, как вы могли заметить.Вместо die() сделайте это следующим образом:

$plugin = dirname(__FILE__) . '/functions.php';
deactivate_plugins($plugin);
wp_die('<p>The <strong>X</strong> plugin requires version WordPress 2.8 or greater.</p>','Plugin Activation Error',array('response'=>200,'back_link'=>TRUE));

Строки над wp_die () должны деактивировать этот плагин.Обратите внимание, что в этом случае мы используем functions.php, потому что там у меня есть объявление комментария к метаданным имени плагина - и если вы используете другой файл, измените код выше.Обратите внимание, что путь очень специфичен для совпадения.Итак, если вы хотите увидеть, каким обычно будет ваш путь, используйте print_r(get_option('active_plugins'));die();, чтобы вывести его, чтобы вы знали, какой путь вам нужен.Поскольку у меня был plugin_code.php, где находился остальной код моего плагина, и поскольку он находился в том же каталоге, что и functions.php, мне просто нужно было сделать dirname(__FILE__) для правильного пути.

Обратите внимание, чтоконец оператора wp_die () важен, поскольку он обеспечивает обратную ссылку и предотвращает ошибку 500 (которая является кодом Apache по умолчанию для wp_die ()).

0 голосов
/ 28 марта 2011

Это всего лишь идея.Попробуйте проверить версию WordPress и сравните, а затем используйте php, чтобы настроить исключение / ошибку.PHP 5.0 try catch может быть хорошим способом сделать это.Вот некоторые ресурсы.

http://www.w3schools.com/php/php_exception.asp

http://php.net/manual/en/internals2.opcodes.throw.php

Вы можете попробовать первую ссылку.Это довольно просто.Спасибо!надеюсь, что информация будет полезна.

...