Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7ff5fc952a | |||
| 1f08bcd9c0 | |||
| aa71c2bbc8 | |||
| 8c77da9a1f | |||
| b155b952a3 | |||
| efafb156a7 | |||
| 32dea5d00b | |||
| 58aa3c7e78 | |||
| feb5e9cc44 | |||
| dbc64a6716 | |||
| c0d2e5a925 | |||
| 7543be3c56 |
261
README.md
261
README.md
@@ -1,164 +1,159 @@
|
|||||||
# WP-Multi Plugin
|
# WP-Multi Plugin für WordPress
|
||||||
|
|
||||||
Das **WP-Multi** Plugin für WordPress bietet eine leistungsstarke Sammlung von Funktionen, die speziell entwickelt wurden, um die Verwaltung und Personalisierung deiner Website zu verbessern. Mit diesem Plugin kannst du eine Vielzahl von Statistiken wie die Gesamtzahl von Beiträgen, Kommentaren und Kategorien auf einfache Weise anzeigen. Zudem hast du die Möglichkeit, benutzerdefinierte Banner zu erstellen, um Besucher gezielt auf wichtige Inhalte oder Aktionen hinzuweisen.
|
**WP-Multi** ist ein multifunktionales WordPress-Plugin, das eine breite Palette von leistungsstarken Funktionen zur Verwaltung deiner Website bietet. Es umfasst Statistiken, benutzerdefinierte Admin-Links, Schutzmechanismen gegen Spam und Brute-Force-Angriffe, sowie viele nützliche Tools für die Verbesserung des Benutzererlebnisses und der Website-Verwaltung.
|
||||||
|
|
||||||
WP-Multi geht darüber hinaus und ermöglicht dir die Integration von Benachrichtigungen via Telegram und Discord für neue Beiträge, die Verwaltung von Gastautoren und die Erstellung benutzerdefinierter Admin-Links. Das Plugin umfasst außerdem fortschrittliche Funktionen zur Kommentarmoderation, wie das Sperren von Benutzern und das Blockieren unerwünschter Inhalte. Alles lässt sich bequem und flexibel direkt im WordPress-Dashboard anpassen, sodass du deine Website mit wenigen Klicks noch effizienter und benutzerfreundlicher gestalten kannst.
|
Das Plugin ist darauf ausgelegt, dir zu helfen, eine detaillierte Übersicht über die Interaktionen auf deiner Seite zu erhalten, Beiträge effizient zu verwalten und gleichzeitig die Sicherheit und das Benutzererlebnis zu optimieren.
|
||||||
|
|
||||||
## Funktionen
|
## Funktionen
|
||||||
|
|
||||||
### Beiträge
|
### 1. **Statistik-Übersicht**
|
||||||
- **Custom Textbox**:
|
- **Zeigt detaillierte Statistiken an:**
|
||||||
- Fügt eine benutzerdefinierte Textbox am Ende eines Beitrags hinzu (z.B. für Copyright-Informationen).
|
- Anzahl der Beiträge
|
||||||
|
- Anzahl der Kommentare
|
||||||
|
- Anzahl der Kategorien
|
||||||
|
- Anzahl der Serien
|
||||||
|
- **Shortcode für die Anzeige der Statistik:** `[statistik_manager]`
|
||||||
|
|
||||||
|
### 2. **Benachrichtigungen auf Telegram und Discord**
|
||||||
|
- **Telegram & Discord Benachrichtigungen:**
|
||||||
|
- Du erhältst Benachrichtigungen in Echtzeit über neue Beiträge auf deiner Website. So bleibst du immer auf dem Laufenden.
|
||||||
|
- Unterstützt sowohl Telegram als auch Discord.
|
||||||
|
|
||||||
|
### 3. **Custom Admin Links**
|
||||||
|
- **Fügt benutzerdefinierte Links im WordPress-Adminbereich hinzu:**
|
||||||
|
- Erstelle und verwalte eigene Links, die direkt im Admin-Dashboard angezeigt werden, um den Verwaltungsaufwand zu reduzieren und deine Arbeit zu optimieren.
|
||||||
|
|
||||||
|
### 4. **Gast-Autor**
|
||||||
|
- **Gast-Autor Feature:**
|
||||||
|
- Ermögliche es, einen Gast-Autornamen für Beiträge festzulegen. Der Name wird im Frontend des Beitrags angezeigt und dient dazu, die Quellen klar darzustellen.
|
||||||
|
|
||||||
### Sidebar
|
### 5. **Beitrags-Report**
|
||||||
- **Pinwand**:
|
- **Melden unangemessener oder falscher Beiträge:**
|
||||||
- Ermöglicht das Teilen von Informationen im Admin-Bereich, um wichtige Mitteilungen oder Nachrichten direkt an Administratoren und Benutzer zu senden.
|
- Benutzer können Beiträge melden, die unangemessen oder fehlerhaft sind. Du erhältst eine Benachrichtigung im Admin-Panel und kannst sofort handeln.
|
||||||
|
- Der Admin kann alle gemeldeten Beiträge im Adminbereich einsehen und gegebenenfalls Maßnahmen ergreifen.
|
||||||
- **Custom Shortcodes**:
|
|
||||||
- Benutzerdefinierte Shortcodes können per Auswahl im Editor eingefügt werden.
|
|
||||||
|
|
||||||
- **Beitrags Report**:
|
|
||||||
- Nutzer können Beiträge melden.
|
|
||||||
- Verfügbar über den Shortcode: `[report_button]`, um es in Widgets oder direkt in Beiträge einzufügen.
|
|
||||||
|
|
||||||
### Kommentare
|
### 6. **Custom Textbox**
|
||||||
- **Kommentar Filter**:
|
- **Fügt benutzerdefinierte Textboxen hinzu:**
|
||||||
- Blockiert Schimpfwörter, Telefonnummern, E-Mail-Adressen und URLs in Kommentaren.
|
- Erstelle Textboxen mit vordefinierten Inhalten, die in jedem Beitrag angezeigt werden.
|
||||||
|
- Diese Textboxen können leicht im Admin-Panel konfiguriert werden.
|
||||||
|
|
||||||
### Benutzer
|
### 7. **Banner für Nachrichten**
|
||||||
- **Blockierte IPs**:
|
- **Banner für Ankündigungen und Informationen:**
|
||||||
- Zeigt alle blockierten IPs an und ermöglicht das Verwalten dieser.
|
- Zeige wichtige Nachrichten als Banner im Frontend deiner Website an. Die Banner können entweder im Header oder im Footer angezeigt werden.
|
||||||
|
|
||||||
- **Benutzer Analytics**:
|
### 8. **Admin Dashboard Update Anzeige**
|
||||||
- Zeigt eine Übersicht über die Benutzeraktivitäten, z.B. die Anzahl der Kommentare eines Benutzers.
|
- **Plugin-Update Benachrichtigung im Admin-Dashboard:**
|
||||||
|
- Zeigt im Admin-Dashboard an, ob eine neue Version von **WP-Multi** verfügbar ist und ob ein Update notwendig ist.
|
||||||
|
|
||||||
- **Benutzer sperren**:
|
### 9. **Gast Lesezeichen**
|
||||||
- Sperrt Benutzer anhand von Namen, E-Mail-Adresse oder IP-Adresse für Kommentare.
|
- **Lesezeichen für Gäste:**
|
||||||
|
- Gäste können Beiträge mit einem Lesezeichen versehen, das über Cookies gespeichert wird.
|
||||||
|
- **Shortcodes:**
|
||||||
|
- `[add_bookmark]` – Fügt ein Lesezeichen hinzu.
|
||||||
|
- `[display_bookmarks]` – Zeigt alle Lesezeichen des Besuchers an.
|
||||||
|
|
||||||
- **GastAutoren**:
|
### 10. **Benutzer für Kommentare sperren**
|
||||||
- Ermöglicht es, den Namen des Gastautors anzugeben, der im Frontend angezeigt wird.
|
- **Verhindert störende Kommentare:**
|
||||||
- Verfolgt, wie viele Beiträge jeder Gastautor verfasst hat.
|
- Sperre bestimmte Benutzer vom Kommentieren, indem du ihren Benutzernamen, ihre IP-Adresse oder E-Mail-Adresse eingibst. Diese Benutzer können dann keine weiteren Kommentare abgeben.
|
||||||
|
|
||||||
### WP Stats & Notice
|
### 11. **Kommentar Filter**
|
||||||
- **Statistik anzeigen**:
|
- **Automatischer Filter für schadhafte Inhalte:**
|
||||||
- Zeigt Statistiken über die Gesamtzahl der veröffentlichten Beiträge, Kommentare, Kategorien und Serien (falls eine benutzerdefinierte Taxonomie für Serien existiert).
|
- Verhindert das Senden von bestimmten Informationen in Kommentaren wie:
|
||||||
- Verfügbar über den Shortcode: `[statistik_manager]`.
|
- Rufnummern
|
||||||
|
- E-Mail-Adressen
|
||||||
- **Banner für Hinweise oder Nachrichten**:
|
- URLs
|
||||||
- Ermöglicht das Hinzufügen eines anpassbaren Banners auf der Website.
|
- IP-Adressen
|
||||||
- Nutze es für Neuigkeiten, Angebote oder andere wichtige Inhalte.
|
- Schimpfwörtern
|
||||||
- Anpassbare Textfarbe, Hintergrundfarbe und Position des Banners.
|
- Diese Elemente werden automatisch durch `*` ersetzt, wenn sie gesendet werden.
|
||||||
|
|
||||||
### Werkzeuge
|
### 12. **Custom Shortcodes**
|
||||||
- **Admin Links**:
|
- **Erstellung benutzerdefinierter Shortcodes:**
|
||||||
- Ermöglicht das Hinzufügen benutzerdefinierter Links im WordPress-Adminbereich.
|
- Du kannst benutzerdefinierte Shortcodes erstellen, die im WordPress-Editor per Auswahl eingefügt werden können, um die Flexibilität und Funktionalität deiner Seite zu erweitern.
|
||||||
- Sowohl interne als auch externe Links können hinzugefügt werden.
|
|
||||||
|
|
||||||
### Notify
|
### 13. **Besucher Analytics**
|
||||||
- **Telegram Benachrichtigung bei neuem Beitrag**:
|
- **Verfolge die beliebtesten Beiträge:**
|
||||||
- Sendet eine Benachrichtigung an Telegram, wenn ein neuer Beitrag veröffentlicht wird.
|
- Sieh dir an, welche Beiträge am häufigsten angesehen oder kommentiert werden.
|
||||||
|
- Es wird angezeigt:
|
||||||
|
- Art der Aktion (View oder Comment)
|
||||||
|
- Titel des Beitrags
|
||||||
|
- Beitrag-ID
|
||||||
|
- Zeitstempel der Aktion
|
||||||
|
|
||||||
- **Discord Benachrichtigung bei neuem Beitrag**:
|
### 14. **Pinwand für Administratoren**
|
||||||
- Sendet eine Benachrichtigung an Discord, wenn ein neuer Beitrag veröffentlicht wird.
|
- **Nachrichten und Ankündigungen für Administratoren:**
|
||||||
|
- Erstelle, bearbeite und lösche Nachrichten auf der Pinwand im Admin-Panel. Diese Nachrichten können für andere Administratoren und Benutzer sichtbar sein.
|
||||||
|
|
||||||
### Sicherheit
|
### 15. **Schutz vor Brute-Force-Angriffen**
|
||||||
- **Schutz vor Brute-Force-Angriffen**:
|
- **Sperrung nach Fehlversuchen:**
|
||||||
- Bietet Schutzmechanismen, die gegen Brute-Force-Angriffe auf deine Login-Seite vorgehen, um die Sicherheit deiner Website zu erhöhen.
|
- Alle fehlgeschlagenen Login-Versuche werden protokolliert. Nach fünf fehlgeschlagenen Versuchen wird der Account automatisch gesperrt und eine E-Mail-Benachrichtigung an den Administrator und den betroffenen Benutzer gesendet.
|
||||||
|
|
||||||
- **Besucher Analytics**:
|
### 16. **Anti-Spam Honey**
|
||||||
- Zeigt die meistbesuchten Beiträge auf der Website an, sodass du Einblicke in die beliebtesten Inhalte bekommst.
|
- **Automatischer Spam-Schutz:**
|
||||||
|
- Das Plugin erkennt Spam, Bots und andere unerwünschte Aktivitäten und blockiert diese automatisch.
|
||||||
|
- Eine detaillierte Übersicht über blockierte Inhalte wird im Admin-Panel bereitgestellt.
|
||||||
|
|
||||||
|
### 17. **Auto Tagging**
|
||||||
|
- **Automatisches Hinzufügen von Tags:**
|
||||||
|
- Wenn ein Beitrag keine Tags hat, fügt das Plugin automatisch relevante Tags hinzu.
|
||||||
|
- Du kannst im Admin-Panel eine Liste von unerwünschten Tags definieren, die das Plugin niemals hinzufügen soll.
|
||||||
|
|
||||||
|
### 18. **Login Deaktivieren**
|
||||||
|
- **Deaktiviere das Login für bestimmte Benutzer:**
|
||||||
|
- Du kannst das Login für bestimmte Benutzer deaktivieren, um unbefugten Zugriff zu verhindern. Diese Funktion kann direkt im Benutzerprofil aktiviert werden.
|
||||||
|
|
||||||
|
### 19. **Text Copy Schutz**
|
||||||
|
- **Schutz vor unerlaubtem Kopieren:**
|
||||||
|
- Verhindert das Kopieren von Texten auf deiner Website, um die Inhalte zu schützen.
|
||||||
|
|
||||||
|
### 20. **Sperre Trash-Mail-Adressen**
|
||||||
|
- **Blockiere Trash-Mail-Adressen in Kommentaren:**
|
||||||
|
- Trash-Mail-Adressen werden in Kommentaren blockiert. Die Liste der blockierten Domains kann nur vom Entwickler des Plugins erweitert werden.
|
||||||
|
|
||||||
|
### 21. **Inhaltsverzeichnis für Beiträge**
|
||||||
|
- **Erstelle ein Inhaltsverzeichnis für Beiträge:**
|
||||||
|
- Erstelle automatisch ein alphabetisches Inhaltsverzeichnis aller Beiträge auf deiner Website.
|
||||||
|
- **Shortcode:** `[alphabetical_index]`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
1. Lade das Plugin herunter und entpacke die ZIP-Datei.
|
### Schritt 1: Plugin herunterladen
|
||||||
2. Gehe in deinem WordPress-Dashboard zu **Plugins** > **Installieren** > **Plugin hochladen**.
|
Lade das **WP-Multi Plugin** als ZIP-Datei von GitHub oder deinem bevorzugten Source-Repository herunter.
|
||||||
3. Wähle die entpackte ZIP-Datei aus und klicke auf **Jetzt installieren**.
|
|
||||||
4. Aktiviere das Plugin nach der Installation.
|
### Schritt 2: Plugin installieren
|
||||||
|
1. Gehe in deinem WordPress-Adminbereich zu **Plugins** > **Installieren**.
|
||||||
|
2. Klicke auf **Plugin hochladen** und wähle die ZIP-Datei des Plugins aus.
|
||||||
|
3. Klicke auf **Jetzt installieren** und dann auf **Aktivieren**.
|
||||||
|
|
||||||
|
### Schritt 3: Plugin konfigurieren
|
||||||
|
Nach der Aktivierung kannst du das Plugin über das **WP-Multi** Menü im Adminbereich konfigurieren. Passe die Einstellungen nach deinen Bedürfnissen an, um alle Funktionen optimal zu nutzen.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Verwendung
|
## Verwendung
|
||||||
|
|
||||||
### Statistiken anzeigen
|
Nach der Installation kannst du die Funktionen und Shortcodes im Adminbereich oder direkt in deinen Beiträgen verwenden. Hier sind einige nützliche Shortcodes:
|
||||||
|
|
||||||
Um die Statistiken auf deiner Seite anzuzeigen, füge einfach den folgenden Shortcode in den Inhalt einer Seite oder eines Beitrags ein:
|
- **Statistik anzeigen:** `[statistik_manager]`
|
||||||
|
- **Lesezeichen hinzufügen:** `[add_bookmark]`
|
||||||
|
- **Lesezeichen anzeigen:** `[display_bookmarks]`
|
||||||
|
- **Inhaltsverzeichnis anzeigen:** `[alphabetical_index]`
|
||||||
|
|
||||||
`[statistik_manager]`
|
Im Adminbereich kannst du auch die benutzerdefinierten Funktionen wie die Textboxen, Kommentar-Filter und Anti-Spam-Maßnahmen konfigurieren.
|
||||||
|
|
||||||
Dieser Shortcode zeigt die verschiedenen Statistiken an, die im Admin-Bereich konfiguriert wurden.
|
---
|
||||||
|
|
||||||
### Banner anzeigen
|
|
||||||
|
|
||||||
Das Banner kann im Admin-Bereich konfiguriert werden und wird dann automatisch auf der Website angezeigt, basierend auf den konfigurierten Einstellungen.
|
|
||||||
|
|
||||||
### Eröffnungsdatum anzeigen
|
|
||||||
|
|
||||||
Im Admin-Bereich kannst du das Eröffnungsdatum deiner Website angeben. Wenn ein Datum eingetragen wurde, wird es zusammen mit der Statistik angezeigt. Falls kein Datum eingetragen ist, wird es nicht angezeigt.
|
|
||||||
|
|
||||||
### Beitrags Report anzeigen
|
|
||||||
|
|
||||||
Um den Report-Button in einem Beitrag oder Widget anzuzeigen, füge den Shortcode `[report_button]` an der gewünschten Stelle ein.
|
|
||||||
|
|
||||||
## Einstellungen
|
|
||||||
|
|
||||||
1. Gehe im WordPress-Dashboard zu **WP Stat & Notice** > **Einstellungen**.
|
|
||||||
2. Konfiguriere die gewünschten Optionen:
|
|
||||||
- Statistiken (Beiträge, Kommentare, Kategorien, Serien)
|
|
||||||
- Banner-Einstellungen (Text, Farben, Position)
|
|
||||||
- Telegram und Discord Benachrichtigungen aktivieren
|
|
||||||
- GastAutoren Einstellungen
|
|
||||||
- Kommentar Sperren und Filter-Einstellungen
|
|
||||||
- Besucher Analytics
|
|
||||||
- Pinwand
|
|
||||||
- Brute-Force-Schutz
|
|
||||||
|
|
||||||
## Optionen
|
|
||||||
|
|
||||||
### WP Stats & Notice
|
|
||||||
- **Beiträge anzeigen**: Zeigt die Gesamtzahl der veröffentlichten Beiträge.
|
|
||||||
- **Kommentare anzeigen**: Zeigt die Gesamtzahl der Kommentare.
|
|
||||||
- **Kategorien anzeigen**: Zeigt die Anzahl der Kategorien (oder nur die ausgewählten Kategorien).
|
|
||||||
- **Serien anzeigen**: Zeigt die Anzahl der Serien an (falls diese Taxonomie in deiner WordPress-Installation vorhanden ist).
|
|
||||||
- **Banner anzeigen**: Ermöglicht das Anzeigen eines anpassbaren Banners auf der Website.
|
|
||||||
- **Eröffnungsdatum der Webseite**: Ermöglicht das Hinzufügen eines Eröffnungsdatums, das unter den Statistiken angezeigt wird.
|
|
||||||
|
|
||||||
### Kommentare
|
|
||||||
- **Kommentar Filter**: Blockiert Schimpfwörter, URLs, E-Mail-Adressen und Telefonnummern.
|
|
||||||
|
|
||||||
### Benutzer
|
|
||||||
- **Blockierte IPs**: Zeigt blockierte IPs an und ermöglicht die Verwaltung dieser.
|
|
||||||
- **GastAutoren**: Zeigt die Anzahl der Beiträge eines Gastautors an.
|
|
||||||
- **Kommentar Sperren**: Sperrt Kommentare von bestimmten Nutzern basierend auf Namen, E-Mail-Adresse oder IP.
|
|
||||||
- **Benutzer Analytics**: Zeigt eine Übersicht der Benutzeraktivitäten, z.B. die Anzahl der Kommentare eines Benutzers.
|
|
||||||
|
|
||||||
### Sidebar
|
|
||||||
- **Pinwand**: Ermöglicht das Teilen von Nachrichten im Admin-Bereich.
|
|
||||||
- **Custom Shortcodes**: Benutzerdefinierte Shortcodes können im Editor eingefügt werden.
|
|
||||||
- **Beitrags Report**: Ermöglicht das Melden von Beiträgen durch die Benutzer.
|
|
||||||
|
|
||||||
### Sicherheit
|
|
||||||
- **Schutz vor Brute-Force-Angriffen**: Aktiviert Sicherheitsmaßnahmen gegen Brute-Force-Angriffe.
|
|
||||||
|
|
||||||
### Notify
|
|
||||||
- **Telegram Benachrichtigung**: Sende Benachrichtigungen an Telegram bei neuen Beiträgen.
|
|
||||||
- **Discord Benachrichtigung**: Sende Benachrichtigungen an Discord bei neuen Beiträgen.
|
|
||||||
|
|
||||||
## Screenshots
|
|
||||||
|
|
||||||
1. **Dashboard Ansicht** – Die Statistiken werden im Admin-Bereich angezeigt.
|
|
||||||
2. **Frontend Anzeige** – Die Statistiken und das Banner werden auf der Webseite angezeigt, wenn der Shortcode verwendet wird.
|
|
||||||
3. **Eröffnungsdatum** – Zeigt das Eröffnungsdatum der Webseite unter den Statistiken an, falls angegeben.
|
|
||||||
4. **Beitrags Report Button** – Zeigt den Button zum Melden von Beiträgen.
|
|
||||||
|
|
||||||
## Entwickler
|
|
||||||
|
|
||||||
- **Plugin Name**: WP Multi
|
|
||||||
- **Autor**: M_Viper
|
|
||||||
- **Website**: [https://m-viper.de](https://m-viper.de)
|
|
||||||
- **Gitea Repository**: [https://git.viper.ipv64.net/M_Viper/wp-multi](https://git.viper.ipv64.net/M_Viper/wp-multi)
|
|
||||||
|
|
||||||
## Lizenz
|
## Lizenz
|
||||||
|
|
||||||
Dieses Plugin ist unter der [GPL-2.0 Lizenz](https://www.gnu.org/licenses/gpl-2.0.html) lizenziert.
|
Dieses Plugin ist unter der [GPL-2.0 Lizenz](https://www.gnu.org/licenses/old-licenses/gpl-2.0.de.html) veröffentlicht.
|
||||||
|
|
||||||
## Contributing
|
---
|
||||||
|
|
||||||
Beiträge zum Plugin sind willkommen! Wenn du eine Idee für eine Verbesserung hast oder einen Fehler findest, kannst du einen **Issue** hier öffnen oder einen **Pull Request** einreichen.
|
## Unterstützung
|
||||||
|
|
||||||
|
Wenn du Fragen hast oder auf Probleme stößt, eröffne ein **Issue** auf GitHub. Wir sind gerne bereit, dir zu helfen!
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Vielen Dank, dass du **WP-Multi** verwendest! Wir hoffen, dass es dir hilft, deine WordPress-Website effizient zu verwalten und zu schützen.
|
||||||
|
|||||||
11598
includes/bad-words.json
11598
includes/bad-words.json
File diff suppressed because it is too large
Load Diff
198
wp-multi.php
198
wp-multi.php
@@ -3,7 +3,7 @@
|
|||||||
* Plugin Name: WP Multi
|
* Plugin Name: WP Multi
|
||||||
* Plugin URI: https://git.viper.ipv64.net/M_Viper/wp-multi
|
* Plugin URI: https://git.viper.ipv64.net/M_Viper/wp-multi
|
||||||
* Description: Erweiterter Anti-Spam-Schutz mit Honeypot, Keyword-Filter, Link-Limit und mehr. Jetzt mit Statistik im Dashboard und HappyForms-Integration.
|
* Description: Erweiterter Anti-Spam-Schutz mit Honeypot, Keyword-Filter, Link-Limit und mehr. Jetzt mit Statistik im Dashboard und HappyForms-Integration.
|
||||||
* Version: 2.3
|
* Version: 2.4
|
||||||
* Author: M_Viper
|
* Author: M_Viper
|
||||||
* Author URI: https://m-viper.de
|
* Author URI: https://m-viper.de
|
||||||
* Requires at least: 6.7.2
|
* Requires at least: 6.7.2
|
||||||
@@ -33,7 +33,7 @@ function wp_multi_alphabetical_index($atts) {
|
|||||||
// Hole alle Beiträge
|
// Hole alle Beiträge
|
||||||
$args = array(
|
$args = array(
|
||||||
'post_type' => 'post',
|
'post_type' => 'post',
|
||||||
'posts_per_page' => -1, // Alle Beiträge (wir filtern später nach Buchstabenbereich)
|
'posts_per_page' => -1,
|
||||||
'orderby' => 'title',
|
'orderby' => 'title',
|
||||||
'order' => 'ASC',
|
'order' => 'ASC',
|
||||||
);
|
);
|
||||||
@@ -866,6 +866,7 @@ function wp_multi_statistics_page() {
|
|||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Einstellungen registrieren
|
// Einstellungen registrieren
|
||||||
function wp_multi_register_security_settings() {
|
function wp_multi_register_security_settings() {
|
||||||
register_setting('wp_multi_security_settings', 'wp_multi_honeypot_field');
|
register_setting('wp_multi_security_settings', 'wp_multi_honeypot_field');
|
||||||
@@ -881,11 +882,58 @@ function wp_multi_register_security_settings() {
|
|||||||
add_settings_field('wp_multi_honeypot_error', 'Honey Pot Error Message', 'wp_multi_honeypot_error_callback', 'wp-multi-security', 'wp_multi_honeypot_section');
|
add_settings_field('wp_multi_honeypot_error', 'Honey Pot Error Message', 'wp_multi_honeypot_error_callback', 'wp-multi-security', 'wp_multi_honeypot_section');
|
||||||
add_settings_field('wp_multi_honeypot_widget', 'Disable Honeypot Test Widget', 'wp_multi_honeypot_widget_callback', 'wp-multi-security', 'wp_multi_honeypot_section');
|
add_settings_field('wp_multi_honeypot_widget', 'Disable Honeypot Test Widget', 'wp_multi_honeypot_widget_callback', 'wp-multi-security', 'wp_multi_honeypot_section');
|
||||||
add_settings_field('wp_multi_max_links', 'Maximale Links im Kommentar', 'wp_multi_max_links_callback', 'wp-multi-security', 'wp_multi_honeypot_section');
|
add_settings_field('wp_multi_max_links', 'Maximale Links im Kommentar', 'wp_multi_max_links_callback', 'wp-multi-security', 'wp_multi_honeypot_section');
|
||||||
add_settings_field('wp_multi_blocked_keywords', 'Blockierte Keywords', 'wp_multi_blocked_keywords_callback', 'wp-multi-security', 'wp_multi_honeypot_section');
|
add_settings_field('wp_multi_blocked_keywords', 'Blockierte Schlüsselwörter', 'wp_multi_blocked_keywords_callback', 'wp-multi-security', 'wp_multi_honeypot_section');
|
||||||
add_settings_field('wp_multi_blocked_ips', 'Blockierte IP-Adressen', 'wp_multi_blocked_ips_callback', 'wp-multi-security', 'wp_multi_honeypot_section');
|
add_settings_field('wp_multi_blocked_ips', 'Blockierte IP-Adressen', 'wp_multi_blocked_ips_callback', 'wp-multi-security', 'wp_multi_honeypot_section');
|
||||||
}
|
}
|
||||||
|
|
||||||
add_action('admin_init', 'wp_multi_register_security_settings');
|
add_action('admin_init', 'wp_multi_register_security_settings');
|
||||||
|
|
||||||
|
function wp_multi_honeypot_field_callback() {
|
||||||
|
?>
|
||||||
|
<div class="wp-multi-honeypot-group">
|
||||||
|
<input type="text" id="wp_multi_honeypot_field" name="wp_multi_honeypot_field" value="<?php echo esc_attr(get_option('wp_multi_honeypot_field')); ?>">
|
||||||
|
<button type="button" onclick="generateHoneypotName()">Generieren</button>
|
||||||
|
</div>
|
||||||
|
<small>Verwenden Sie ein zufälliges Zeichenfolgen für das Honeypot-Feld.</small>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
|
||||||
|
function wp_multi_honeypot_error_callback() {
|
||||||
|
?>
|
||||||
|
<input type="text" name="wp_multi_honeypot_error" value="<?php echo esc_attr(get_option('wp_multi_honeypot_error')); ?>">
|
||||||
|
<small>Die Nachricht, die angezeigt wird, wenn ein Honeypot ausgelöst wird.</small>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
|
||||||
|
function wp_multi_honeypot_widget_callback() {
|
||||||
|
?>
|
||||||
|
<input type="checkbox" name="wp_multi_honeypot_widget" value="1" <?php checked(1, get_option('wp_multi_honeypot_widget'), true); ?>>
|
||||||
|
<small>Deaktivieren Sie das Honeypot-Test-Widget im Frontend.</small>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
|
||||||
|
function wp_multi_max_links_callback() {
|
||||||
|
?>
|
||||||
|
<input type="number" name="wp_multi_max_links" value="<?php echo esc_attr(get_option('wp_multi_max_links')); ?>">
|
||||||
|
<small>Maximale Anzahl von Links, die in einem Kommentar erlaubt sind.</small>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
|
||||||
|
function wp_multi_blocked_keywords_callback() {
|
||||||
|
?>
|
||||||
|
<input type="text" name="wp_multi_blocked_keywords" value="<?php echo esc_attr(get_option('wp_multi_blocked_keywords')); ?>">
|
||||||
|
<small>Schlüsselwörter, die blockiert werden sollen (durch Kommas getrennt).</small>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
|
||||||
|
function wp_multi_blocked_ips_callback() {
|
||||||
|
?>
|
||||||
|
<textarea name="wp_multi_blocked_ips" rows="5"><?php echo esc_textarea(get_option('wp_multi_blocked_ips')); ?></textarea>
|
||||||
|
<small>Blockierte IP-Adressen (jede Adresse in einer neuen Zeile).</small>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -2389,22 +2437,79 @@ function wp_multi_update_dashboard_widget() {
|
|||||||
}
|
}
|
||||||
add_action('wp_dashboard_setup', 'wp_multi_update_dashboard_widget');
|
add_action('wp_dashboard_setup', 'wp_multi_update_dashboard_widget');
|
||||||
|
|
||||||
// Callback-Funktion für das Widget
|
// Cron-Job registrieren
|
||||||
function wp_multi_update_dashboard_widget_content() {
|
function wp_multi_update_schedule_check() {
|
||||||
// Gitea API-URL und Token
|
if (!wp_next_scheduled('wp_multi_update_check_event')) {
|
||||||
|
// Registriere den Cron-Job, der alle 3 Minuten ausgeführt wird
|
||||||
|
wp_schedule_event(time(), 'three_minutes', 'wp_multi_update_check_event');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
add_action('wp', 'wp_multi_update_schedule_check');
|
||||||
|
|
||||||
|
// Cron-Job für Update-Überprüfung
|
||||||
|
function wp_multi_update_check() {
|
||||||
|
// Gitea API-URL
|
||||||
$api_url = 'https://git.viper.ipv64.net/api/v1/repos/M_Viper/wp-multi/releases';
|
$api_url = 'https://git.viper.ipv64.net/api/v1/repos/M_Viper/wp-multi/releases';
|
||||||
$api_token = '9a8bfc571ec98af17bdfadf9e8495c6c330d8c7d';
|
|
||||||
|
|
||||||
// Die Version des Plugins aus den Metadaten der Plugin-Datei holen
|
// Die Version des Plugins aus den Metadaten der Plugin-Datei holen
|
||||||
$plugin_data = get_plugin_data( __FILE__ );
|
$plugin_data = get_plugin_data( __FILE__ );
|
||||||
$installed_version = $plugin_data['Version']; // Die installierte Version aus den Plugin-Metadaten
|
$installed_version = $plugin_data['Version']; // Die installierte Version aus den Plugin-Metadaten
|
||||||
|
|
||||||
// Gitea API-Anfrage für die neuesten Releases
|
// Hole die Einstellung, ob PreRelease-Versionen angezeigt werden sollen
|
||||||
$response = wp_remote_get($api_url, array(
|
$show_prereleases = get_option('wp_multi_update_show_prereleases', false);
|
||||||
'headers' => array(
|
|
||||||
'Authorization' => 'token ' . $api_token
|
// Gitea API-Anfrage für die neuesten Releases ohne Authentifizierung
|
||||||
)
|
$response = wp_remote_get($api_url);
|
||||||
));
|
|
||||||
|
if (is_wp_error($response)) {
|
||||||
|
return; // Fehler nicht weitergeben, aber nichts tun
|
||||||
|
}
|
||||||
|
|
||||||
|
// API-Antwort verarbeiten
|
||||||
|
$body = wp_remote_retrieve_body($response);
|
||||||
|
$data = json_decode($body, true);
|
||||||
|
|
||||||
|
// Finde das neueste, gültige Release (nicht PreRelease, falls deaktiviert)
|
||||||
|
$valid_release = null;
|
||||||
|
foreach ($data as $release) {
|
||||||
|
// Wenn PreRelease deaktiviert ist, überspringe alle PreRelease-Versionen
|
||||||
|
if (!$show_prereleases && isset($release['prerelease']) && $release['prerelease']) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($release['tag_name'])) {
|
||||||
|
$valid_release = $release;
|
||||||
|
break; // Nur das erste gültige Release verwenden
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($valid_release) {
|
||||||
|
$latest_version = $valid_release['tag_name'];
|
||||||
|
$release_notes = isset($valid_release['body']) ? $valid_release['body'] : '';
|
||||||
|
$is_prerelease = isset($valid_release['prerelease']) && $valid_release['prerelease'];
|
||||||
|
|
||||||
|
// Speichern von Release-Daten
|
||||||
|
update_option('wp_multi_update_latest_version', $latest_version);
|
||||||
|
update_option('wp_multi_update_release_notes', $release_notes);
|
||||||
|
update_option('wp_multi_update_is_prerelease', $is_prerelease);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
add_action('wp_multi_update_check_event', 'wp_multi_update_check');
|
||||||
|
|
||||||
|
// Callback-Funktion für das Widget
|
||||||
|
function wp_multi_update_dashboard_widget_content() {
|
||||||
|
// Gitea API-URL
|
||||||
|
$api_url = 'https://git.viper.ipv64.net/api/v1/repos/M_Viper/wp-multi/releases';
|
||||||
|
|
||||||
|
// Die Version des Plugins aus den Metadaten der Plugin-Datei holen
|
||||||
|
$plugin_data = get_plugin_data( __FILE__ );
|
||||||
|
$installed_version = $plugin_data['Version']; // Die installierte Version aus den Plugin-Metadaten
|
||||||
|
|
||||||
|
// Hole die Einstellung, ob PreRelease-Versionen angezeigt werden sollen
|
||||||
|
$show_prereleases = get_option('wp_multi_update_show_prereleases', false);
|
||||||
|
|
||||||
|
// Gitea API-Anfrage für die neuesten Releases ohne Authentifizierung
|
||||||
|
$response = wp_remote_get($api_url);
|
||||||
|
|
||||||
if (is_wp_error($response)) {
|
if (is_wp_error($response)) {
|
||||||
echo 'Fehler beim Abrufen der Versionsinformationen von Gitea.';
|
echo 'Fehler beim Abrufen der Versionsinformationen von Gitea.';
|
||||||
@@ -2414,11 +2519,27 @@ function wp_multi_update_dashboard_widget_content() {
|
|||||||
// API-Antwort verarbeiten
|
// API-Antwort verarbeiten
|
||||||
$body = wp_remote_retrieve_body($response);
|
$body = wp_remote_retrieve_body($response);
|
||||||
$data = json_decode($body, true);
|
$data = json_decode($body, true);
|
||||||
|
|
||||||
if (!empty($data) && isset($data[0]['tag_name'])) {
|
|
||||||
$latest_version = $data[0]['tag_name']; // Neuste Version von Gitea
|
|
||||||
|
|
||||||
// Vergleiche die installierte Version mit der neuesten Version
|
// Finde das neueste, gültige Release (nicht PreRelease, falls deaktiviert)
|
||||||
|
$valid_release = null;
|
||||||
|
foreach ($data as $release) {
|
||||||
|
// Wenn PreRelease deaktiviert ist, überspringe alle PreRelease-Versionen
|
||||||
|
if (!$show_prereleases && isset($release['prerelease']) && $release['prerelease']) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($release['tag_name'])) {
|
||||||
|
$valid_release = $release;
|
||||||
|
break; // Nur das erste gültige Release verwenden
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($valid_release) {
|
||||||
|
$latest_version = $valid_release['tag_name'];
|
||||||
|
$release_notes = isset($valid_release['body']) ? $valid_release['body'] : '';
|
||||||
|
$is_prerelease = isset($valid_release['prerelease']) && $valid_release['prerelease'];
|
||||||
|
|
||||||
|
// Anzeige der Versionen und Text basierend auf PreRelease
|
||||||
if (version_compare($installed_version, $latest_version, '>=')) {
|
if (version_compare($installed_version, $latest_version, '>=')) {
|
||||||
// Wenn die installierte Version gleich oder neuer ist als die Version in Gitea
|
// Wenn die installierte Version gleich oder neuer ist als die Version in Gitea
|
||||||
echo '<p style="color: green;">Ihre Version ist aktuell. Version ' . $installed_version . ' ist die neueste Version.</p>';
|
echo '<p style="color: green;">Ihre Version ist aktuell. Version ' . $installed_version . ' ist die neueste Version.</p>';
|
||||||
@@ -2427,13 +2548,54 @@ function wp_multi_update_dashboard_widget_content() {
|
|||||||
echo '<p style="color: red;">Es ist eine neue Version von WP Multi verfügbar! <strong>Version ' . $latest_version . '</strong> ist jetzt verfügbar.</p>';
|
echo '<p style="color: red;">Es ist eine neue Version von WP Multi verfügbar! <strong>Version ' . $latest_version . '</strong> ist jetzt verfügbar.</p>';
|
||||||
echo '<p>Aktuell installierte Version: <strong>' . $installed_version . '</strong></p>';
|
echo '<p>Aktuell installierte Version: <strong>' . $installed_version . '</strong></p>';
|
||||||
echo '<p>Neue Version auf Gitea: <strong>' . $latest_version . '</strong></p>';
|
echo '<p>Neue Version auf Gitea: <strong>' . $latest_version . '</strong></p>';
|
||||||
echo '<p><a href="' . esc_url($data[0]['assets'][0]['browser_download_url']) . '" class="button button-primary" target="_blank">Update herunterladen</a></p>';
|
|
||||||
|
// PreRelease in blauer Schrift anzeigen, wenn erlaubt und das Update ein PreRelease ist
|
||||||
|
if ($is_prerelease && $show_prereleases) {
|
||||||
|
echo '<p style="color: blue;">Dieses Update ist ein PreRelease.</p>';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Verfassen-Text anzeigen, falls verfügbar
|
||||||
|
if (!empty($release_notes)) {
|
||||||
|
echo '<p><strong>Information zum Update:</strong></p>';
|
||||||
|
echo '<p>' . nl2br(esc_html($release_notes)) . '</p>';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Button-Text anpassen je nachdem, ob es ein PreRelease ist
|
||||||
|
$button_text = $is_prerelease ? 'PreRelease herunterladen' : 'Update herunterladen';
|
||||||
|
$download_url = $valid_release['assets'][0]['browser_download_url'];
|
||||||
|
echo '<p><a href="' . esc_url($download_url) . '" class="button button-primary" target="_blank">' . esc_html($button_text) . '</a></p>';
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
echo 'Fehler beim Abrufen der neuesten Version von Gitea.';
|
echo 'Fehler beim Abrufen der neuesten Version von Gitea.';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Benutzerdefinierte Intervalle für Cron hinzufügen
|
||||||
|
function wp_multi_update_custom_intervals($schedules) {
|
||||||
|
// 3 Minuten Intervall hinzufügen
|
||||||
|
$schedules['three_minutes'] = array(
|
||||||
|
'interval' => 180, // Alle 3 Minuten
|
||||||
|
'display' => __('Alle 3 Minuten'),
|
||||||
|
);
|
||||||
|
return $schedules;
|
||||||
|
}
|
||||||
|
add_filter('cron_schedules', 'wp_multi_update_custom_intervals');
|
||||||
|
|
||||||
|
// PreRelease Option in den Einstellungen hinzufügen
|
||||||
|
function wp_multi_update_register_settings() {
|
||||||
|
add_option('wp_multi_update_show_prereleases', false);
|
||||||
|
register_setting('general', 'wp_multi_update_show_prereleases');
|
||||||
|
add_settings_field('wp_multi_update_show_prereleases', 'Pre-Release-Versionen anzeigen', 'wp_multi_update_show_prereleases_field', 'general');
|
||||||
|
}
|
||||||
|
add_action('admin_init', 'wp_multi_update_register_settings');
|
||||||
|
|
||||||
|
// Einstellung für PreRelease-Versionen
|
||||||
|
function wp_multi_update_show_prereleases_field() {
|
||||||
|
$value = get_option('wp_multi_update_show_prereleases', false);
|
||||||
|
echo '<input type="checkbox" id="wp_multi_update_show_prereleases" name="wp_multi_update_show_prereleases" value="1" ' . checked(1, $value, false) . ' />';
|
||||||
|
echo '<p class="description" style="color: red;">Aktiviere diese Option, um Pre-Release-Versionen anzuzeigen, die noch nicht vollständig veröffentlicht wurden. Deaktiviere die Option, um nur stabile Versionen anzuzeigen.</p>';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Notify Seite Discord & Telegram
|
* Notify Seite Discord & Telegram
|
||||||
|
|||||||
Reference in New Issue
Block a user