我一直在error_log中得到这些PHP错误,无法弄清楚如何解决它:
错误:
PHP Strict Standards: Non-static method wf_gmap::check_wp_footer() should not be called statically in /home/USERNAME/public_html/WEBSITE/wp-content/plugins/5sec-google-maps/5sec-gmaps.php on line 25
PHP Notice: Use of undefined constant is_admin - assumed 'is_admin' in /home/USERNAME/public_html/WEBSITE/wp-content/plugins/5sec-google-maps/5sec-gmaps.php on line 21
PHP Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method wf_gmap::init() should not be called statically in /home/USERNAME/public_html/WEBSITE/wp-includes/plugin.php on line 429
和5sec-gmaps.php文件从17到44的行是这样的:
class wf_gmap {
static $js_functions = '';
public function init() {
if(is_admin) {
add_filter('plugin_row_meta', array(__CLASS__, 'plugin_meta_links'), 10, 2);
}
// check wp_footer()
self::check_wp_footer();
// add shortcode
global $shortcode_tags;
if (isset($shortcode_tags[GMAP_SHORTCODE])) {
add_action('admin_footer', array(__CLASS__, 'warning'));
} else {
add_shortcode(GMAP_SHORTCODE, array(__CLASS__, 'shortcode'));
}
// add JS include files
add_action('wp_footer', array(__CLASS__, 'footer'), 2);
// add shortcode support in sidebar text widget
if (has_filter('widget_text', 'do_shortcode') === false) {
add_filter('widget_text', 'do_shortcode');
}
return;
和plugin.php从418到434的行:
// Sort
if ( !isset( $merged_filters[ $tag ] ) ) {
ksort($wp_filter[$tag]);
$merged_filters[ $tag ] = true;
}
reset( $wp_filter[ $tag ] );
do {
foreach ( (array) current($wp_filter[$tag]) as $the_ )
if ( !is_null($the_['function']) )
call_user_func_array($the_['function'], array_slice($args, 0, (int) $the_['accepted_args']));
} while ( next($wp_filter[$tag]) !== false );
array_pop($wp_current_filter);
任何帮助都将不胜感激。
答案 0 :(得分:1)
您正在使用static上下文调用成员方法。
self::check_wp_footer();
应为$this->check_wp_footer();
同样,无论$the_['function']
必须引用静态方法。
答案 1 :(得分:0)
PHP严格标准:非静态方法wf_gmap :: check_wp_footer()
表示函数check_wp_footer不是静态方法,所以你不能像这样调用