Jump to content

Kargano

New Members
  • Posts

    4
  • Joined

  • Last visited

Everything posted by Kargano

  1. Yes i know. and there is no update. The widgets.php is the file i have postet the code on start of this topic. This was the reason that i think the error is on this. And it is only appear as soon i switch from php 7.4 to php 8
  2. Yes, i use WP 5.8.1 and php 8.0.10 Yesterday it was 5.8 but the error is the same.
  3. Thanks for the answer. The problem is that the constructor gives an error. This is the whole error message. [06-Sep-2021 08:50:12 UTC] PHP Fatal error: Uncaught ArgumentCountError: Too few arguments to function WP_Widget::__construct(), 0 passed in /****/****.com/rebuild.****.com/wp-includes/class-wp-widget-factory.php on line 61 and at least 2 expected in /****/****.com/rebuild.****.com/wp-includes/class-wp-widget.php:162 Stack trace: #0 /****/****.com/rebuild.****.com/wp-includes/class-wp-widget-factory.php(61): WP_Widget->__construct() #1 /****/****.com/rebuild.****.com/wp-includes/widgets.php(115): WP_Widget_Factory->register('VMenuWidget') #2 /****/****.com/rebuild.****.com/wp-content/themes/oldtheme/library/widgets.php(255): register_widget('VMenuWidget') #3 /****/****.com/rebuild.****.com/wp-includes/class-wp-hook.php(303): artWidgetsInit('') #4 /****/****.com/rebuild.****.com/wp-includes/class-wp-hook.php(327): WP_Hook->apply_filters('', Array) #5 /****/****.com/rebuild.****.com/wp-includes/plugin.php(470): WP_Hook->do_action(Array) #6 /****/****.com/rebuild.****.com/wp-includes/widgets.php(1809): do_action('widgets_init') #7 /****/****.com/rebuild.****.com/wp-includes/class-wp-hook.php(303): wp_widgets_init('') #8 /****/****.com/rebuild.****.com/wp-includes/class-wp-hook.php(327): WP_Hook->apply_filters(NULL, Array) #9 /****/****.com/rebuild.****.com/wp-includes/plugin.php(470): WP_Hook->do_action(Array) #10 /****/****.com/rebuild.****.com/wp-settings.php(578): do_action('init') #11 /****/****.com/rebuild.****.com/wp-config.php(85): require_once('/home/httpd/vho...') #12 /****/****.com/rebuild.****.com/wp-load.php(50): require_once('/home/httpd/vho...') #13 /****/****.com/rebuild.****.com/wp-blog-header.php(13): require_once('/home/httpd/vho...') #14 /****/****.com/rebuild.****.com/index.php(17): require('/home/httpd/vho...') #15 {main} thrown in /****/****.com/rebuild.****.com/wp-includes/class-wp-widget.php on line 162 And when I rename the PHP file I have no error anymore. I have also found this Info https://www.php.net/manual/de/migration71.incompatible.php this was the reason for me to think the error was the line i posted. But thank you very much.
  4. Hello all, I have for a customer site still an old WP template and have trouble converting from PHP 7 to PHP 8. I get the following error: Uncaught ArgumentCountError: Too few arguments to function . I was able to reduce the error to this PHP file. <?php // widget extra options global $theme_widgets_style; $theme_widgets_style = array( 'default' => __('sidebar default', THEME_NS), 'block' => __('block', THEME_NS), 'post' => __('post', THEME_NS), 'simple' => __('simple text', THEME_NS) ); function theme_get_widget_style($id, $style = null) { $result = theme_get_widget_meta_option($id, 'theme_widget_styles'); global $theme_widgets_style; if (!in_array($result, array_keys($theme_widgets_style))) { $result = 'default'; } if ($style != null) { if (!in_array($style, array('block', 'post', 'simple'))) { $style = 'block'; } if ($result == 'default') { $result = $style; } } return $result; } function theme_set_widget_style($id, $style) { global $theme_widgets_style; if (!in_array($style, array_keys($theme_widgets_style))) { $style = 'default'; } theme_set_widget_meta_option($id, 'theme_widget_styles', $style); } function theme_widget_expand_control($id) { global $wp_registered_widget_controls; $controls = &$wp_registered_widget_controls[$id]; if (!is_array($controls['params'])) { $controls['params'] = array($controls['params']); } $controls['params'][] = $id; if (isset($controls['callback'])) { $controls['callback_redirect'] = $controls['callback']; } $controls['callback'] = 'theme_widget_extra_control'; } function theme_update_widget_additional($instance) { global $theme_widget_meta_options; foreach ($theme_widget_meta_options as $value) { $id = theme_get_array_value($value, 'id'); $val = stripslashes(theme_get_array_value($_POST, $id)); $type = theme_get_array_value($value, 'type'); $options = theme_get_array_value($value, 'options'); switch ($type) { case 'checkbox': $val = ($val ? 1 : 0); break; case 'numeric': $val = (int) $val; break; case 'select': if (!in_array($val, array_keys($options))) { $val = reset(array_keys($options)); } break; } $instance[$id] = $val; } return $instance; } function theme_widget_process_control() { global $wp_registered_widget_controls; if ('post' == strtolower($_SERVER['REQUEST_METHOD']) && isset($_POST['widget-id'])) { theme_widget_expand_control($_POST['widget-id']); return; } foreach ($wp_registered_widget_controls as $id => $widget) { theme_widget_expand_control($id); } } function theme_widget_extra_control() { global $wp_registered_widget_controls, $theme_widgets_style, $theme_widget_meta_options; $_theme_widget_meta_options = $theme_widget_meta_options; $params = func_get_args(); $widget_id = $params[count($params) - 1]; // see theme_widget_expand_control func $widget_controls = theme_get_array_value($wp_registered_widget_controls, $widget_id, array()); if (isset($widget_controls['callback_redirect'])) { $callback = $widget_controls['callback_redirect']; if (is_callable($callback)) { call_user_func_array($callback, $params); } } if (!preg_match('/^(.*[^-])-([0-9]+)$/', $widget_id, $matches) || !isset($matches[1]) || !isset($matches[2])) { return false; } $id = $matches[1] . '-' . $params[0]['number']; ?> <h3 style="margin-bottom:3px;"><?php _e('Theme Options', THEME_NS); ?></h3> <?php theme_print_meta_box($id, $_theme_widget_meta_options); } // widgets class VMenuWidget extends WP_Widget { function VMenuWidget() { $widget_ops = array('classname' => 'vmenu', 'description' => __('Use this widget to add one of your custom menus as a widget.', THEME_NS)); parent::WP_Widget(false, __('Vertical Menu', THEME_NS), $widget_ops); } function widget($args, $instance) { extract($args); $title = apply_filters('widget_title', $instance['title'], $instance, $this->id_base); echo $before_widget; echo $before_title . $title . $after_title; echo theme_get_menu(array( 'source' => $instance['source'], 'depth' => theme_get_option('theme_vmenu_depth'), 'menu' => wp_get_nav_menu_object($instance['nav_menu']), 'class' => '' )); echo $after_widget; } function update($new_instance, $old_instance) { $instance['title'] = strip_tags($new_instance['title']); $instance['source'] = $new_instance['source']; $instance['nav_menu'] = (int) $new_instance['nav_menu']; return $instance; } function form($instance) { //Defaults $instance = wp_parse_args((array) $instance, array('title' => '', 'source' => 'Pages', 'nav_menu' => '')); $title = esc_attr($instance['title']); $source = $instance['source']; $nav_menu = $instance['nav_menu']; // Get menus $menus = get_terms('nav_menu', array('hide_empty' => false)); $sources = array( 'Pages' => __('Pages', THEME_NS), 'Categories' => __('Categories', THEME_NS), 'Custom Menu' => __('Custom Menu', THEME_NS) ); ?> <p> <label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:', THEME_NS) ?></label> <input type="text" class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" value="<?php echo $title; ?>" /> </p> <p> <label for="<?php echo $this->get_field_id('source'); ?>"><?php echo __('Source', THEME_NS) . ':'; ?></label> <select class="widefat" id="<?php echo $this->get_field_id('source'); ?>" name="<?php echo $this->get_field_name('source'); ?>" onchange="var s = jQuery('.p-<?php echo $this->get_field_id('nav_menu'); ?>'); if (this.value == 'Custom Menu') s.show(); else s.hide();"> <?php foreach ($sources as $s => $t ) { $selected = ($source == $s ? ' selected="selected"' : ''); echo '<option' . $selected . ' value="' . $s . '">' . $t . '</option>'; } ?> </select> </p> <p class="p-<?php echo $this->get_field_id('nav_menu'); ?>" <?php if ($source !== 'Custom Menu') echo ' style="display:none"' ?>> <?php // If no menus exists, direct the user to go and create some. if (!$menus) { printf(__('No menus have been created yet. <a href="%s">Create some</a>.', THEME_NS), admin_url('nav-menus.php')); } else { ?> <label for="<?php echo $this->get_field_id('nav_menu'); ?>"><?php _e('Select Menu:', THEME_NS); ?></label><br /> <select class="widefat" id="<?php echo $this->get_field_id('nav_menu'); ?>" name="<?php echo $this->get_field_name('nav_menu'); ?>"> <?php foreach ($menus as $menu) { $selected = $nav_menu == $menu->term_id ? ' selected="selected"' : ''; echo '<option' . $selected . ' value="' . $menu->term_id . '">' . $menu->name . '</option>'; } ?> </select> <?php } ?> </p> <?php } } class LoginWidget extends WP_Widget { function LoginWidget() { $widget_ops = array('classname' => 'login', 'description' => __('Login form', THEME_NS)); $this->WP_Widget(false, __('Login', THEME_NS), $widget_ops); } function widget($args, $instance) { global $user_ID, $user_identity, $user_level, $user_email, $user_login; extract($args); echo $before_widget; echo $before_title; if ($user_ID): echo $user_identity; echo $after_title; ?> <ul> <li><a href="<?php echo esc_url( site_url() ) ?>/wp-admin/"><?php _e('Dashboard', THEME_NS); ?></a></li> <?php if ($user_level >= 1): ?> <li><a href="<?php echo esc_url( site_url() ) ?>/wp-admin/post-new.php"><?php _e('Publish', THEME_NS); ?></a></li> <li><a href="<?php echo esc_url( site_url() ) ?>/wp-admin/edit-comments.php"><?php _e('Comments', THEME_NS); ?></a></li> <?php endif; ?> <li><a href="<?php echo wp_logout_url() ?>&amp;redirect_to=<?php echo urlencode(theme_get_current_url()); ?>"><?php _e("Log out", THEME_NS); ?></a></li> </ul> <?php else: _e('Log In', THEME_NS); echo $after_title; ?> <form action="<?php echo esc_url( site_url() ) ?>/wp-login.php" method="post" name="login" id="form-login"> <fieldset class="input" style="border: 0 none;"> <p id="form-login-username"> <label for="log"><?php _e('Username', THEME_NS) ?></label> <br> <input type="text" name="log" id="log" value="<?php echo esc_attr(stripslashes($user_login), 1) ?>" size="20" /> </p> <p id="form-login-password"> <label for="pwd"><?php _e("Password", THEME_NS); ?></label> <br> <input type="password" name="pwd" id="pwd" size="20" /><br /> </p> <p id="form-login-remember"> <label for="rememberme"><?php _e('Remember Me', THEME_NS); ?></label> <input name="rememberme" id="rememberme" type="checkbox" checked="checked" value="forever" /> </p> <input class="art-button" type="submit" name="submit" value="<?php echo esc_attr(__('Log In', THEME_NS)); ?>" /> </fieldset> <input type="hidden" name="redirect_to" value="<?php echo theme_get_current_url(); ?>"/> </form> <ul> <?php if (get_option('users_can_register')) { ?> <li><a href="<?php echo esc_url( site_url() ) ?>/wp-register.php"><?php _e("Register", THEME_NS); ?></a></li> <?php } ?> <li><a href="<?php echo esc_url( site_url() ) ?>/wp-login.php?action=lostpassword"><?php _e("Lost your password?", THEME_NS); ?></a></li> </ul> <?php endif; echo $after_widget; } } // init widgets function artWidgetsInit() { register_widget('VMenuWidget'); register_widget('LoginWidget'); } add_action('widgets_init', 'artWidgetsInit'); I suspect the error is in these lines function form($instance) { //Defaults $instance = wp_parse_args((array) $instance, array('title' => '', 'source' => 'Pages', 'nav_menu' => '')); $title = esc_attr($instance['title']); $source = $instance['source']; $nav_menu = $instance['nav_menu']; Does anyone have a tip for me ? Or would tell me how much it costs to make it compatible? I have searched for quite a long time, but have not found anything. Best regards Kargano
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.