elhardoum / wp-php-compat-check
帮助在运行插件前检查PHP和WordPress的兼容性。
Requires
- php: >=5.0
This package is not auto-updated.
Last update: 2024-09-29 03:52:45 UTC
README
帮助在运行插件前检查PHP和WordPress的兼容性。
您可以将主WordPress插件代码包裹在这个助手函数中,并指定插件应运行的最低PHP版本,以及可选的最低WordPress版本,然后如果所有检查都符合且环境兼容,插件应该能正常工作而不出现致命错误。
这个助手函数至少需要PHP 5.0,并且应该适用于多站环境。
用法
在您的主插件文件中,例如 wp-content/plugins/my-plugin/my-plugin.php
,引入这个兼容类
require_once 'wp-php-compat-check/wp-php-compat-check.php';
对于Composer用户
composer require elhardoum/wp-php-compat-check
然后,请确保将所有主文件代码(当然不包括插件头部注释)复制到 then
方法中
CompatCheckWP::check( // ... arguments )->then(function(){ // [ ... ] Your plugin code goes here. });
以下是一个示例
<?php /* Plugin Name: Tweak MailChimp Feeds RSS Plugin URI: https://samelh.com/blog Description: Tweak MailChimp RSS Feeds to add the featured image, excerpt and a read more button. Author: Samuel Elh Version: 0.1 Author URI: https://go.samelh.com/buy-me-a-coffee */ defined ( 'ABSPATH' ) || exit ( 'Direct access not allowed.' . PHP_EOL ); require_once 'wp-php-compat-check/wp-php-compat-check.php'; CompatCheckWP::check(array( 'php_version' => 7.0, 'deactivate_incompatible' => true, 'wp_version' => 4.2, ))->then(function(){ $GLOBALS['feed_ignore_categories'] = array( // [...] ); function filter_the_content_feed( $content ) { // [...] } function pre_get_posts_mailchimp_rss($query) { // [...] } // [...] });
以下是一个示例,这次不使用 闭包,因为从PHP 5.3开始支持闭包
<?php /* Plugin Name: My Plugin Plugin URI: https://samelh.com/blog Description: My Plugin. Author: Samuel Elh Version: 0.1 Author URI: https://go.samelh.com/buy-me-a-coffee */ function my_plugin_runs_here() { // [ ... ] my plugin code.. } require_once 'wp-php-compat-check/wp-php-compat-check.php'; CompatCheckWP::check(array( 'php_version' => 7.0, 'deactivate_incompatible' => true, 'wp_version' => 4.2, ))->then('my_plugin_runs_here');
最后一个示例,如果您不想使用 then
方法,可以使用 isCompatible
方法来解决问题
$is_compatible = CompatCheckWP::check(array( 'php_version' => 7.0, 'deactivate_incompatible' => true, 'wp_version' => 4.2, ))->isCompatible(); if ( $is_compatible ) { /* ... */ }
选项
以下称为选项,您可以将其传递给 CompatCheckWP
类的 check
方法(CompatCheckWP::check( array( ...options ) )
)
php_version
:插件应工作的最低PHP版本,如有需要。
wp_version
:插件应工作的最低WordPress版本,如有需要。
deactivate_incompatible
:如果不兼容,立即停用插件。否则保持激活状态,但插件代码将不会运行。
error_message
:自定义不兼容的错误信息。默认为:以下插件由于兼容性错误无法激活:插件名/插件名.php。 [PHP >= XX: ✓, WP >= XX: ×]
plugin_file
:可选,传递一个字符串形式的插件文件,格式与该函数返回的格式相同: plugin_basename
(例如 'plugin_file' => plugin_basename(MY_PLUGIN_FILE)
)。如果您从主插件文件调用类而没有传递此参数,则插件文件将从调试回溯中程序化地提取,否则如果从另一个文件调用,则肯定失败,并且您需要传递此参数。
php_version_operator
:默认情况下,检查PHP版本要求的运算符是 >=
。
wp_version_operator
:默认情况下,检查WP版本要求的运算符是 >=
。