Cannot redeclare class PingOptimizer

Тема в разделе "PHP", создана пользователем Dador, 29 ноя 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Dador

    Dador Читатель

    Заблокирован
    Регистр.:
    14 янв 2008
    Сообщения:
    368
    Симпатии:
    97
    Что за ошибка?
    Код:
    Fatal error: Cannot redeclare class PingOptimizer in /dirhost/www/wp-content/plugins/maxblogpress-ping-optimizer/maxblogpress-ping-optimizer.php on line 39
    на 39 строчке собстно:
    Код:
    class All_in_One_SEO_Pack {
    в чём дело не пойму, проблема появляется при
    Код:
    function activate_plugin($plugin, $redirect = '') {
    		$current = get_option('active_plugins');
    		$plugin = trim($plugin);
    
    		$valid = validate_plugin($plugin);
    		if ( is_wp_error($valid) )
    			return $valid;
    
    		if ( !in_array($plugin, $current) ) {
    			if ( !empty($redirect) )
    				wp_redirect(add_query_arg('_error_nonce', wp_create_nonce('plugin-activation-error_' . $plugin), $redirect)); // we'll override this later if the plugin can be included without fatal error
    			ob_start();
    			[B][COLOR="Red"]include(WP_PLUGIN_DIR . '/' . $plugin);[/COLOR][/B]
    			$current[] = $plugin;
    			sort($current);
    			update_option('active_plugins', $current);
    			do_action('activate_' . $plugin);
    			ob_end_clean();
    		}
    
    		return null;
    }
    в файле wp-admin/инклуз/plugin.php от вп-му

    p.s. функцию ту вызываю как
    Код:
    switch_to_blog($id);
    $plugin = "maxblogpress-ping-optimizer/maxblogpress-ping-optimizer.php";
    			$result = activate_plugin($plugin, '');
    			if ( is_wp_error( $result ) )
    				wp_die( $result->get_error_message() );
    			$recent = (array)get_option('recently_activated');
    			if( isset($recent[ $plugin ]) ){
    				unset($recent[ $plugin ]);
    				update_option('recently_activated', $recent);
    			}
     
  2. elcaste

    elcaste

    Регистр.:
    30 ноя 2007
    Сообщения:
    322
    Симпатии:
    175
    Эта ошибка означает, что этот класс уже где-то объявлен. Такое бывает когда инклудится один и тот же файл более одного раза.

    Попробуй заменить
    PHP:
    include(WP_PLUGIN_DIR '/' $plugin);
    на
    PHP:
    include_once(WP_PLUGIN_DIR '/' $plugin);
     
    Dador нравится это.
  3. Dador

    Dador Читатель

    Заблокирован
    Регистр.:
    14 янв 2008
    Сообщения:
    368
    Симпатии:
    97
    примерно то же и думал, спасибо!

    значит буду разбиратся... топик можно закрыть) проблема закрыта
     
Статус темы:
Закрыта.