# Instagram Gallery Sync Pro [![WordPress](https://img.shields.io/badge/WordPress-5.0%2B-blue.svg)](https://wordpress.org/) [![PHP](https://img.shields.io/badge/PHP-7.4%2B-purple.svg)](https://php.net/) [![License](https://img.shields.io/badge/License-GPL--2.0%2B-green.svg)](https://www.gnu.org/licenses/gpl-2.0.html) Ein leistungsstarkes WordPress-Plugin zur Synchronisierung und Anzeige von Instagram-Fotos ohne offizielle API. **Entwickelt von [Keil & Schick](https://keil-schick.de)** --- ## 🚀 Features - **Automatische Synchronisierung** – Holt regelmĂ€ĂŸig neue Bilder von öffentlichen Instagram-Profilen - **Lokale Bildspeicherung** – Bilder werden auf deinem Server gespeichert (bessere Performance) - **5 Layout-Optionen** – Grid, Masonry, Justified, Slider, List - **VollstĂ€ndig responsive** – Separate Spalteneinstellungen fĂŒr Desktop, Tablet & Mobile - **Lightbox-Integration** – GLightbox fĂŒr elegante Bildanzeige - **Gutenberg-Block** – Nativer Block-Editor mit Live-Vorschau - **Shortcode-UnterstĂŒtzung** – Flexibel mit zahlreichen Parametern - **6 Hover-Effekte** – Zoom, Fade, Overlay, Grayscale, Lift, None - **Custom CSS** – Eigene Styles direkt im Admin-Bereich - **Activity Logs** – Detaillierte Protokollierung aller Sync-AktivitĂ€ten - **i18n-ready** – Vorbereitet fĂŒr Übersetzungen (DE/EN) --- ## 📋 Anforderungen - WordPress 5.0 oder höher - PHP 7.4 oder höher - Öffentliches Instagram-Profil --- ## đŸ“„ Installation ### Manuelle Installation 1. Lade den `instagram-gallery-sync-pro` Ordner herunter 2. Kopiere ihn nach `/wp-content/plugins/` 3. Aktiviere das Plugin unter **Plugins** im WordPress-Admin 4. Gehe zu **Instagram Gallery** in der Sidebar ### Via WordPress Admin 1. Gehe zu **Plugins → Installieren** 2. Klicke auf **Plugin hochladen** 3. WĂ€hle die ZIP-Datei aus 4. Klicke auf **Jetzt installieren** und dann **Aktivieren** --- ## ⚙ Konfiguration ### Grundeinrichtung 1. Navigiere zu **Instagram Gallery** im Admin-MenĂŒ 2. Gib deinen Instagram-Benutzernamen ein (ohne @) 3. WĂ€hle die gewĂŒnschte Bildanzahl und QualitĂ€t 4. Klicke auf **Sync Now** ### Einstellungs-Tabs | Tab | Beschreibung | |-----|--------------| | **Instagram** | Username, Sync-Intervall, BildqualitĂ€t | | **Layout** | Grid-Typ, Spalten, AbstĂ€nde, Hover-Effekte | | **Anzeige** | Limit, Sortierung, Lightbox, Lazy Loading | | **Styling** | Farben, SchriftgrĂ¶ĂŸen, Custom CSS | | **Erweitert** | Debug-Modus, Cache, Proxy, Logs | --- ## 🔧 Verwendung ### Shortcode Einfachste Verwendung: ``` [instagram_gallery] ``` Mit Parametern: ``` [instagram_gallery layout="masonry" columns="4" limit="12" spacing="15"] ``` #### Alle Parameter | Parameter | Werte | Standard | |-----------|-------|----------| | `layout` | `grid`, `masonry`, `slider`, `justified`, `list` | `grid` | | `columns` | `1` - `6` | `3` | | `spacing` | `0` - `50` (px) | `10` | | `limit` | `1` - `50` | `12` | | `order` | `newest`, `oldest`, `random` | `newest` | | `lightbox` | `yes`, `no` | `yes` | | `captions` | `yes`, `no` | `no` | | `autoplay` | `true`, `false` (nur Slider) | `false` | | `class` | CSS-Klassenname | – | ### Gutenberg Block 1. Öffne den Block-Editor 2. Suche nach "Instagram Gallery" 3. FĂŒge den Block hinzu 4. Konfiguriere ĂŒber die Sidebar-Einstellungen ### PHP Template ```php 'grid', 'columns' => 3, 'limit' => 9 )); } ?> ``` --- ## 🎹 Styling ### CSS-Variablen Das Plugin verwendet CSS Custom Properties fĂŒr einfache Anpassung: ```css :root { --igsp-primary: #e1306c; --igsp-hover: #c13584; --igsp-text: #ffffff; --igsp-font-size: 14px; --igsp-radius: 0px; } ``` ### CSS-Klassen | Klasse | Beschreibung | |--------|--------------| | `.igsp-gallery` | Container | | `.igsp-item` | Einzelnes Bild | | `.igsp-image` | Bild-Element | | `.igsp-overlay` | Caption-Overlay | | `.igsp-follow-btn` | Instagram-Button | --- ## 🔄 Synchronisierung ### Automatisch Das Plugin synchronisiert automatisch basierend auf dem konfigurierten Intervall: - Alle 30 Minuten - StĂŒndlich - Alle 6 Stunden - TĂ€glich - Wöchentlich ### Manuell Klicke auf **Sync Now** im Instagram-Tab der Einstellungen. ### Scraping-Methoden Das Plugin verwendet mehrere Fallback-Methoden: 1. **Web Profile Info API** – Instagrams interne Web-API 2. **Embed Page Parsing** – Parst die Embed-Seiten 3. **Profile Page Parsing** – HTML-Analyse mit mehreren Strategien --- ## ⚠ Wichtige Hinweise > **Hinweis:** Instagram blockiert Scraping aktiv. Das Plugin enthĂ€lt Anti-Blocking-Maßnahmen, aber 100% ZuverlĂ€ssigkeit kann nicht garantiert werden. ### Best Practices - Verwende **lange Sync-Intervalle** (6h+) - Aktiviere **lokale Bildspeicherung** - Nutze **Caching** fĂŒr bessere Performance - Halte die **Bildanzahl** moderat (12-24) ### Problembehandlung | Problem | Lösung | |---------|--------| | Keine Bilder | PrĂŒfe ob Profil öffentlich ist | | Rate Limiting | Erhöhe Sync-Intervall | | Timeout | Erhöhe Request-Timeout in Erweitert | | Parsing-Fehler | PrĂŒfe Logs, warte und versuche erneut | --- ## đŸ—„ïž Datenbank Das Plugin erstellt zwei Tabellen: - `wp_instagram_gallery_posts` – Gespeicherte Bilder - `wp_instagram_gallery_log` – AktivitĂ€tsprotokolle Bei Deinstallation werden alle Daten vollstĂ€ndig entfernt. --- ## 📁 Dateistruktur ``` instagram-gallery-sync-pro/ ├── instagram-gallery-sync-pro.php # Hauptdatei ├── uninstall.php # Deinstallations-Routine ├── includes/ │ ├── class-admin.php # Admin-Handler │ ├── class-cron.php # Cron-Jobs │ ├── class-database.php # Datenbank-Operationen │ ├── class-gutenberg-block.php # Block-Editor │ ├── class-image-handler.php # Bild-Download & -Verarbeitung │ ├── class-logger.php # Logging-System │ ├── class-scraper.php # Instagram-Scraper │ └── class-shortcode.php # Shortcode-Handler ├── admin/ │ ├── css/admin-style.css │ ├── js/admin-script.js │ ├── js/ajax-sync.js │ └── views/ # Admin-Templates ├── public/ │ ├── css/ # Frontend-Styles │ └── js/ # Frontend-Scripts + Libs └── languages/ # Übersetzungsdateien ``` --- ## 🔐 Sicherheit - Prepared Statements fĂŒr alle DB-Queries - Nonce-Verifizierung fĂŒr AJAX-Requests - Capability-Checks (`manage_options`) - Input-Sanitization fĂŒr alle Benutzereingaben - Output-Escaping mit `esc_html()`, `esc_attr()`, etc. --- ## 📝 Changelog ### 1.0.0 (2026-01-22) - Erste Veröffentlichung - 5 Layout-Typen (Grid, Masonry, Justified, Slider, List) - Gutenberg Block mit Live-Vorschau - Shortcode mit allen Parametern - Admin-Bereich mit 5 Tabs - Multi-Methoden Scraping Engine - Lokale Bildspeicherung mit Thumbnails - Activity Logging System --- ## 📄 Lizenz GPL-2.0-or-later © [Keil & Schick](https://keil-schick.de) --- ## 🆘 Support FĂŒr Fragen und Support besuche: [https://keil-schick.de](https://keil-schick.de) --- *Entwickelt mit ❀ in Deutschland*