Serveranzeige (Serverviewer) für WordPress!
🖥️ Serveranzeige (Serverviewer) für WordPress! Hey zusammen, wir haben für euch eine kleine Serveranzeige (Serverviewer) gebaut – speziell für WordPress.
🖥️ Serveranzeige (Serverviewer) für WordPress!
Hey zusammen,
wir haben für euch eine kleine Serveranzeige (Serverviewer) gebaut – speziell für WordPress.
Damit könnt ihr ganz einfach sehen, ob euer Server online (grün) oder offline (rot) ist. 🎮
🔧 Voraussetzungen
Ihr benötigt dafür:
das Plugin „Code Snippets“
eine einfache HTML-Seite (z. B. über Elementor oder eine normale Seite in WordPress)
⚙️ Funktionsweise
Die Anzeige nutzt die BattleMetrics-API oder wahlweise einen Query-Port, um Serverdaten abzurufen.
Die Online-/Offline-Anzeige (Ampel grün/rot) funktioniert zuverlässig.
Die Spieleranzahl wird zwar abgefragt, funktioniert aber aktuell nicht zuverlässig.
Bei Minecraft funktioniert nur die Ampelanzeige (Spieleranzahl wird nicht korrekt ausgegeben).
Bei ARK: Ascended wird die Spieleranzahl ebenfalls fehlerhaft oder gar nicht korrekt angezeigt.
Das betrifft auch andere Spiele teilweise, da die Daten über BattleMetrics oder Query nicht immer sauber übermittelt werden.
🕹️ Beitreten-Button
Bei ARK: Ascended hat der Button derzeit keine Funktion, da das Spielmenü den direkten Beitritt blockiert (auch wenn der Steam-Link korrekt ist).
Bei Spielen wie Counter-Strike funktioniert der Beitreten-Button wie vorgesehen, wenn ihr IP und Port hinterlegt habt.
🧩 Anpassungen
Ihr könnt:
Hintergrundbilder ändern
Texte anpassen
Die Anzeige individuell gestalten
Das Ganze ist schlicht, übersichtlich und leicht anpassbar.
📹 Vorschau
HTML Code
<!-- FULL ELEMENTOR GAMESERVER DASHBOARD – SCOPED VERSION --><div id="server-dashboard"> <canvas id="server-dashboard-canvas"></canvas> <div class="server-grid"> <!-- Server 1: ARK ASA --> <div class="server-card" style="background-image:url('https://image.api.playstation.com/vulcan/ap/rnd/202310/2502/1751043f9999ae22f2e6293fcf355e596f4183de063619da.png');"> <div class="overlay"></div> <img src="https://ark2.de/uploads/monthly_2023_10/ASA_Logo_transparent.webp.a360e57899b61d7ced50403db77ae08c.webp" alt="ARK ASA Logo" class="server-logo"> <h3>[Aberration] GSI [GER] 1xXP 2xH 2xT Cross<</h3> <p>Spiel: ARK ASA</p> <p>IP: 109.230.239.32:27024</p> <div class="server-status-box"> [serverstatus ip="109.230.239.32" port="27024" name="ARK ASA "] </div> <p class="server-desc">Willkommen auf[Aberration] GSI [GER] 1xXP 2xH 2xT Cross << !\nErkundet die unterirdischen Höhlen und überlebt die Gefahren.\nWilddinos spawnen bis ca. Level 210.\nPyromane-Dino und Drakeling spawnen nicht.</p> <a href="steam://connect/109.230.239.32:27024" class="server-btn">Beitreten</a> </div> <!-- Server 1: ARK ASA --> <div class="server-card" style="background-image:url('https://image.api.playstation.com/vulcan/ap/rnd/202310/2502/1751043f9999ae22f2e6293fcf355e596f4183de063619da.png');"> <div class="overlay"></div> <img src="https://ark2.de/uploads/monthly_2023_10/ASA_Logo_transparent.webp.a360e57899b61d7ced50403db77ae08c.webp" alt="ARK ASA Logo" class="server-logo"> <h3>[Astreos] GSI [GER] 1xXP 2xH 2xT Cross<</h3> <p>Spiel: ARK ASA</p> <p>IP: 109.230.239.32:27020</p> <div class="server-status-box"> [serverstatus ip="109.230.239.32" port="27020" name="ARK ASA "] </div> <p class="server-desc">Willkommen auf [Astraeos] GSI [GER] 1xXP 2xH 2xT Cross Genießt das besondere Abenteuer dieser Mod-Map.Wilddinos spawnen bis ca. Level 210.Pyromane-Dino und Drakeling spawnen nicht.</p> <a href="steam://connect/109.230.239.32:27020" class="server-btn">Beitreten</a> </div> <!-- Server 1: ARK ASA --> <div class="server-card" style="background-image:url('https://image.api.playstation.com/vulcan/ap/rnd/202310/2502/1751043f9999ae22f2e6293fcf355e596f4183de063619da.png');"> <div class="overlay"></div> <img src="https://ark2.de/uploads/monthly_2023_10/ASA_Logo_transparent.webp.a360e57899b61d7ced50403db77ae08c.webp" alt="ARK ASA Logo" class="server-logo"> <h3>[Extinction] GSI [GER] 1xXP 2xH 2xT Cross<</h3> <p>Spiel: ARK ASA</p> <p>IP: 109.230.239.32:27021</p> <div class="server-status-box"> [serverstatus ip="109.230.239.32" port="27021" name="ARK ASA "] </div> <p class="server-desc">Willkommen auf [Extinction] GSI [GER] 1xXP 2xH 2xT Cross Genießt das besondere Abenteuer dieser Mod-Map.Wilddinos spawnen bis ca. Level 210.Pyromane-Dino und Drakeling spawnen nicht.</p> <a href="steam://connect/109.230.239.32:27021" class="server-btn">Beitreten</a> </div> <!-- Server 1: ARK ASA --> <div class="server-card" style="background-image:url('https://image.api.playstation.com/vulcan/ap/rnd/202310/2502/1751043f9999ae22f2e6293fcf355e596f4183de063619da.png');"> <div class="overlay"></div> <img src="https://ark2.de/uploads/monthly_2023_10/ASA_Logo_transparent.webp.a360e57899b61d7ced50403db77ae08c.webp" alt="ARK ASA Logo" class="server-logo"> <h3>[Ragnarok] GSI [GER] 1xXP 2xH 2xT Cross<</h3> <p>Spiel: ARK ASA</p> <p>IP: 109.230.239.32:27022</p> <div class="server-status-box"> [serverstatus ip="109.230.239.32" port="27022" name="ARK ASA "] </div> <p class="server-desc">Willkommen auf [Ragnarok] GSI [GER] 1xXP 2xH 2xT Cross Genießt das besondere Abenteuer dieser Mod-Map.Wilddinos spawnen bis ca. Level 210.Pyromane-Dino und Drakeling spawnen nicht.</p> <a href="steam://connect/109.230.239.32:27022" class="server-btn">Beitreten</a> </div> <!-- Server 1: ARK ASA --> <div class="server-card" style="background-image:url('https://image.api.playstation.com/vulcan/ap/rnd/202310/2502/1751043f9999ae22f2e6293fcf355e596f4183de063619da.png');"> <div class="overlay"></div> <img src="https://ark2.de/uploads/monthly_2023_10/ASA_Logo_transparent.webp.a360e57899b61d7ced50403db77ae08c.webp" alt="ARK ASA Logo" class="server-logo"> <h3>[Scorched Earth] GSI [GER] 1xXP 2xH 2xT Cross<</h3> <p>Spiel: ARK ASA</p> <p>IP: 109.230.239.32:27023</p> <div class="server-status-box"> [serverstatus ip="109.230.239.32" port="27023" name="ARK ASA "] </div> <p class="server-desc">Willkommen auf [Scorched Earth] GSI [GER] 1xXP 2xH 2xT Cross Genießt das besondere Abenteuer dieser Mod-Map.Wilddinos spawnen bis ca. Level 210.Pyromane-Dino und Drakeling spawnen nicht.</p> <a href="steam://connect/109.230.239.32:27023" class="server-btn">Beitreten</a> </div> <!-- Server 1: ARK ASA --> <div class="server-card" style="background-image:url('https://image.api.playstation.com/vulcan/ap/rnd/202310/2502/1751043f9999ae22f2e6293fcf355e596f4183de063619da.png');"> <div class="overlay"></div> <img src="https://ark2.de/uploads/monthly_2023_10/ASA_Logo_transparent.webp.a360e57899b61d7ced50403db77ae08c.webp" alt="ARK ASA Logo" class="server-logo"> <h3>[The Center] GSI [GER] 1xXP 2xH 2xT Cross<</h3> <p>Spiel: ARK ASA</p> <p>IP: 109.230.239.32:27026</p> <div class="server-status-box"> [serverstatus ip="109.230.239.32" port="27026" name="ARK ASA "] </div> <p class="server-desc">Willkommen auf [The Center] GSI [GER] 1xXP 2xH 2xT Cross Genießt das besondere Abenteuer dieser Mod-Map.Wilddinos spawnen bis ca. Level 210.Pyromane-Dino und Drakeling spawnen nicht.</p> <a href="steam://connect/109.230.239.32:27026" class="server-btn">Beitreten</a> </div> <!-- Server 1: ARK ASA --> <div class="server-card" style="background-image:url('https://image.api.playstation.com/vulcan/ap/rnd/202310/2502/1751043f9999ae22f2e6293fcf355e596f4183de063619da.png');"> <div class="overlay"></div> <img src="https://ark2.de/uploads/monthly_2023_10/ASA_Logo_transparent.webp.a360e57899b61d7ced50403db77ae08c.webp" alt="ARK ASA Logo" class="server-logo"> <h3>[Svartalfheim] GSI [GER] 1xXP 2xH 2xT Cross<</h3> <p>Spiel: ARK ASA</p> <p>IP: 109.230.239.32:27028</p> <div class="server-status-box"> [serverstatus ip="109.230.239.32" port="27028" name="ARK ASA "] </div> <p class="server-desc">Willkommen auf [Svartalfheim] GSI [GER] 1xXP 2xH 2xT Cross Genießt das besondere Abenteuer dieser Mod-Map.Wilddinos spawnen bis ca. Level 210.Pyromane-Dino und Drakeling spawnen nicht.</p> <a href="steam://connect/109.230.239.32:27028" class="server-btn">Beitreten</a> </div> <!-- Server 1: ARK ASA --> <div class="server-card" style="background-image:url('https://image.api.playstation.com/vulcan/ap/rnd/202310/2502/1751043f9999ae22f2e6293fcf355e596f4183de063619da.png');"> <div class="overlay"></div> <img src="https://ark2.de/uploads/monthly_2023_10/ASA_Logo_transparent.webp.a360e57899b61d7ced50403db77ae08c.webp" alt="ARK ASA Logo" class="server-logo"> <h3>[Valguero] GSI [GER] 1xXP 2xH 2xT Cross<</h3> <p>Spiel: ARK ASA</p> <p>IP: 109.230.239.32:27029</p> <div class="server-status-box"> [serverstatus ip="109.230.239.32" port="27029" name="ARK ASA "] </div> <p class="server-desc">Willkommen auf [Valguero] GSI [GER] 1xXP 2xH 2xT Cross Genießt das besondere Abenteuer dieser Mod-Map.Wilddinos spawnen bis ca. Level 210.Pyromane-Dino und Drakeling spawnen nicht.</p> <a href="steam://connect/109.230.239.32:27029" class="server-btn">Beitreten</a> </div> <!-- Server 1: ARK ASA --> <div class="server-card" style="background-image:url('https://www.nintendo.com/eu/media/images/10_share_images/games_15/nintendo_switch_4/2x1_NSwitch_Minecraft_image1600w.jpg');"> <div class="overlay"></div> <img src="https://upload.wikimedia.org/wikipedia/en/e/e7/Steve_%28Minecraft%29.png" alt="ARK ASA Logo" class="server-logo"> <h3>City Build<</h3> <p>Spiel: Minecraft</p> <p>IP: 109.230.239.32:25568</p> <div class="server-status-box"> [serverstatus ip="109.230.239.32" port="25568" name="ARK ASA "] </div> <p class="server-desc">Willkommen auf City Build</p> <a href="steam://connect/109.230.239.32:25568" class="server-btn">Beitreten</a> </div> </div></div> <style>/* SCOPED DASHBOARD */#server-dashboard { position: relative; overflow: hidden; padding: 20px;} /* SCOPED PARTICLE CANVAS */#server-dashboard-canvas { position: absolute; inset: 0; z-index: 0;} /* SCOPED GRID */#server-dashboard .server-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 25px; position: relative; z-index: 1;} /* SCOPED SERVER CARD */#server-dashboard .server-card { position: relative; border-radius: 16px; color: #fff; text-align: center; overflow: hidden; background-size: cover; background-position: center; box-shadow: 0 0 20px rgba(0,255,255,0.2); transition: transform 0.3s ease, box-shadow 0.3s ease;}#server-dashboard .server-card:hover { transform: translateY(-5px) scale(1.03); box-shadow: 0 0 40px rgba(0,255,255,0.4);}#server-dashboard .overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.55); transition: background 0.3s ease;}#server-dashboard .server-card:hover .overlay { background: rgba(0,0,0,0.35); } /* SCOPED LOGO */#server-dashboard .server-logo { width: 80px; height: 80px; border-radius: 50%; border: 2px solid #00bfff; margin: 15px auto 10px auto; position: relative; z-index:2;} /* SCOPED TEXT */#server-dashboard h3 { font-size: 1.3rem; margin: 6px 0; font-family: 'Orbitron', sans-serif; position: relative; z-index:2; }#server-dashboard p { margin:4px 0; font-size:0.9rem; position:relative; z-index:2; }#server-dashboard .server-desc { color:#ccc; margin-top:8px; font-size:0.85rem; } /* SCOPED STATUS */#server-dashboard .server-status-box { margin: 8px 0; font-size:0.95rem; position:relative; z-index:2; } /* SCOPED BUTTON */#server-dashboard .server-btn { display:inline-block; margin-top:12px; padding:10px 18px; border-radius:10px; text-decoration:none; color:#fff; background:linear-gradient(90deg,#00bfff,#0099cc); transition:0.3s; z-index:2; position:relative;}#server-dashboard .server-btn:hover { background:linear-gradient(90deg,#0099cc,#00bfff); transform:scale(1.05); } /* SCOPED GLOW ANIMATION */@keyframes glow { 0%{box-shadow:0 0 10px #00bfff;} 50%{box-shadow:0 0 25px #00ffff;} 100%{box-shadow:0 0 10px #00bfff;} }#server-dashboard .server-card:hover { animation: glow 1.2s infinite alternate; } /* MOBILE OPTIMIERUNG */@media (max-width:768px){ #server-dashboard .server-grid { grid-template-columns:1fr; gap:20px; } #server-dashboard .server-card { padding:18px 12px; } #server-dashboard h3 { font-size:1.2rem; } #server-dashboard p, #server-dashboard .server-desc, #server-dashboard .server-status-box { font-size:0.85rem; } #server-dashboard .server-btn { padding:12px 20px; font-size:0.95rem; }}@media (max-width:600px){ #server-dashboard-canvas { display:none; }}</style> <!-- GOOGLE FONT --><link href="https://fonts.googleapis.com/css2?family=Orbitron:wght@500&display=swap" rel="stylesheet"> <!-- SCOPED PARTICLE JS --><script>const canvas = document.getElementById('server-dashboard-canvas');const ctx = canvas.getContext('2d');canvas.width = window.innerWidth;canvas.height = window.innerHeight; let particlesArray = [];const colors = ['#00ffff','#00bfff','#0099cc']; class Particle{ constructor(){ this.x=Math.random()*canvas.width; this.y=Math.random()*canvas.height; this.size=Math.random()*3+1; this.speedX=Math.random()*1-0.5; this.speedY=Math.random()*1-0.5; this.color=colors[Math.floor(Math.random()*colors.length)]; } update(){ this.x+=this.speedX; this.y+=this.speedY; if(this.x>canvas.width)this.x=0;if(this.x<0)this.x=canvas.width;if(this.y>canvas.height)this.y=0;if(this.y<0)this.y=canvas.height; } draw(){ ctx.fillStyle=this.color; ctx.beginPath(); ctx.arc(this.x,this.y,this.size,0,Math.PI*2); ctx.fill(); }}function init(){ particlesArray=[]; for(let i=0;i<100;i++){ particlesArray.push(new Particle()); } }init();function animate(){ ctx.clearRect(0,0,canvas.width,canvas.height); particlesArray.forEach(p=>{p.update();p.draw();}); requestAnimationFrame(animate); }animate();window.addEventListener('resize',()=>{ canvas.width=window.innerWidth; canvas.height=window.innerHeight; init(); });</script>
Code für das Snippets Plugin
function game_server_status($atts) { $a = shortcode_atts(array( 'ip' => '', 'port' => '', 'name' => 'Server' ), $atts); $ip = sanitize_text_field($a['ip']); $port = sanitize_text_field($a['port']); $name = sanitize_text_field($a['name']); // BattleMetrics API $url = "https://api.battlemetrics.com/servers?filter[search]={$ip}"; $response = wp_remote_get($url, array('timeout' => 10)); if (is_wp_error($response)) { return "<span style='color:gray;'>❌ API-Fehler</span>"; } $body = json_decode(wp_remote_retrieve_body($response), true); $status_html = "<span style='color:#ffcc00;'>❔ Unbekannt</span>"; if (isset($body['data'][0]['attributes'])) { $data = $body['data'][0]['attributes']; $status = $data['status']; $players = isset($data['players']) ? $data['players'] : 0; $max_players = isset($data['maxPlayers']) ? $data['maxPlayers'] : 0; $map = isset($data['details']['map']) ? $data['details']['map'] : 'n/a'; if ($status === 'online') { $status_html = "<span style='color:#00ff99;font-weight:bold;'>🟢 Online</span>"; } else { $status_html = "<span style='color:#ff4d4d;font-weight:bold;'>🔴 Offline</span>"; } // Spieler + Map, wenn vorhanden $info_html = "<div style='font-size:0.9em;color:#ccc;margin-top:4px;'>👥 {$players}/{$max_players} Spieler<br>🗺️ Map: {$map}</div>"; return "<div class='server-status'>{$status_html}{$info_html}</div>"; } return $status_html;}add_shortcode('serverstatus', 'game_server_status');Viel Spaß mit der Serveranzeige – und schaut einfach, ob euer Server grün (an) oder rot (aus) ist. 😊
Liebe Grüße
Euer rumpel
Tschau, Tschau – Bye Bye!