publish; // Kommentare $comments_count = wp_count_comments()->total_comments; // Kategorien $selected_categories = get_option('statistik_manager_selected_categories', []); $categories_count = 0; if (!empty($selected_categories)) { $categories_count = count($selected_categories); } else { // Alle Kategorien zählen, wenn keine ausgewählt wurden $categories_count = wp_count_terms('category'); } // Serien (angenommen, Serien sind benutzerdefinierte Taxonomie) $series_count = 0; if (taxonomy_exists('series')) { $count = wp_count_terms('series'); $series_count = is_wp_error($count) ? 0 : (int) $count; } // Eröffnungsdatum $opening_date = get_option('statistik_manager_opening_date', ''); return [ 'posts_count' => $posts_count, 'comments_count' => $comments_count, 'categories_count' => $categories_count, 'series_count' => $series_count, 'opening_date' => $opening_date ]; } // Banner-Funktion function statistik_manager_display_banner($position) { if (!get_option('statistik_manager_banner_enabled', 1)) { return; } $banner_text = get_option('statistik_manager_banner_text', 'Willkommen auf unserer Webseite!'); $banner_color = get_option('statistik_manager_banner_color', '#0073aa'); $banner_position = get_option('statistik_manager_banner_position', 'top'); $font_size = get_option('statistik_manager_banner_font_size', 'medium'); $banner_icon = get_option('statistik_manager_banner_icon', 'fas fa-info-circle'); // Standard-Icon $show_icon = get_option('statistik_manager_show_icon', 1); // Option zur Aktivierung des Icons // Schriftgröße je nach Auswahl setzen switch ($font_size) { case 'small': $font_size_css = '14px'; break; case 'medium': $font_size_css = '18px'; break; case 'large': $font_size_css = '24px'; break; default: $font_size_css = '18px'; } if ($banner_position !== $position) { return; } // Standard-Styles für das Banner $style = "background-color: " . esc_attr($banner_color) . "; color: #fff; text-align: center; padding: 10px; width: 100%; height: 50px; /* Feste Höhe */ line-height: 30px; /* Zentrierte Schrift */ z-index: 9999; position: fixed; top: 0; left: 0;"; $text_style = "font-size: " . esc_attr($font_size_css) . ";"; $icon_style = "font-size: 24px; margin-right: 8px;"; // Feste Größe für Icon echo '
'; } // Funktion für das Banner im Header (nach ) function statistik_manager_display_banner_header() { add_action('wp_body_open', function() { statistik_manager_display_banner('top'); }); } // Falls `wp_body_open` nicht unterstützt wird, als Fallback `wp_footer` nutzen function statistik_manager_display_banner_header_fallback() { add_action('wp_footer', function() { statistik_manager_display_banner('top'); }, 5); } // Funktion für das Banner im Footer function statistik_manager_display_banner_footer() { add_action('wp_footer', function() { statistik_manager_display_banner('bottom'); }, 10); } // Banner laden (Header mit Fallback) if (function_exists('wp_body_open')) { statistik_manager_display_banner_header(); } else { statistik_manager_display_banner_header_fallback(); } // Fix: Admin-Leiste (Wenn Admin angemeldet ist, Banner nach unten verschieben) function statistik_manager_admin_bar_fix() { if (is_admin_bar_showing()) { echo ''; } else { echo ''; } } add_action('wp_head', 'statistik_manager_admin_bar_fix'); // Shortcode für die Anzeige der Statistiken function statistik_manager_shortcode() { $statistics = statistik_manager_get_statistics(); $webseitenname = get_bloginfo('name'); $output = 'Beiträge: ' . esc_html($statistics['posts_count']) . '
Kommentare: ' . esc_html($statistics['comments_count']) . '
Kategorien: ' . esc_html($statistics['categories_count']) . '
Serien: ' . esc_html($statistics['series_count']) . '
' . sprintf(__('%s wurde am %s eröffnet.', 'statistik-manager'), esc_html($webseitenname), esc_html($formatted_date)) . '
'; $output .= '[statistik_manager] an der gewünschten Stelle in einem Beitrag oder einer Seite ein.[display_bookmarks] listet die gespeicherten Lesezeichen der Besucher auf.[add_bookmark] erhalten Besucher ein Formular zum Speichern eines Lesezeichens.git.viper.ipv64.net'); ?>
'; wpmt_admin_page_close(); } // Optionen registrieren function statistik_manager_register_settings() { register_setting('statistik_manager_settings_group', 'statistik_manager_show_posts'); register_setting('statistik_manager_settings_group', 'statistik_manager_show_comments'); register_setting('statistik_manager_settings_group', 'statistik_manager_show_categories'); register_setting('statistik_manager_settings_group', 'statistik_manager_show_series'); register_setting('statistik_manager_settings_group', 'statistik_manager_selected_categories'); register_setting('statistik_manager_settings_group', 'statistik_manager_opening_date'); register_setting('statistik_manager_settings_group', 'statistik_manager_banner_text'); register_setting('statistik_manager_settings_group', 'statistik_manager_banner_color', [ 'sanitize_callback' => 'sanitize_hex_color', ]); register_setting('statistik_manager_settings_group', 'statistik_manager_banner_position'); register_setting('statistik_manager_settings_group', 'statistik_manager_banner_enabled'); register_setting('statistik_manager_settings_group', 'statistik_manager_banner_icon', [ 'sanitize_callback' => function($value) { // Icon-Wert besteht aus mehreren space-getrennten CSS-Klassen (z. B. "fas fa-bell") $classes = array_map('sanitize_html_class', explode(' ', (string) $value)); return implode(' ', array_filter($classes)); }, ]); register_setting('statistik_manager_settings_group', 'statistik_manager_show_icon'); register_setting('statistik_manager_settings_group', 'statistik_manager_banner_font_size'); } add_action('admin_init', 'statistik_manager_register_settings'); // Standardwerte setzen function statistik_manager_set_default_options() { if (get_option('statistik_manager_show_posts') === false) { update_option('statistik_manager_show_posts', 1); } if (get_option('statistik_manager_show_comments') === false) { update_option('statistik_manager_show_comments', 1); } if (get_option('statistik_manager_show_categories') === false) { update_option('statistik_manager_show_categories', 1); } if (get_option('statistik_manager_show_series') === false) { update_option('statistik_manager_show_series', 1); } if (get_option('statistik_manager_selected_categories') === false) { update_option('statistik_manager_selected_categories', []); } if (get_option('statistik_manager_banner_enabled') === false) { update_option('statistik_manager_banner_enabled', 1); } if (get_option('statistik_manager_banner_font_size') === false) { update_option('statistik_manager_banner_font_size', 'medium'); } } add_action('admin_init', 'statistik_manager_set_default_options');