Login Feld in HTML Seite einfügen?

2 Antworten

WordPress baut auf verschiedenen Templates auf, die vorgeben, wie Seiten (und Seitenkomponenten) aufgebaut sind. Um deinen eigenen Code hinzuzufügen, müsstest du ein bestehendes Template ändern oder ein neues hinzufügen.

Wie das geht, kannst du in verschiedenen Internetblogs nachlesen. Es gibt zahlreiche Guides.

Eine kleine Auswahl:

Um einen eigenen Login zu implementieren, benötigst du allerdings sichere HTML- und PHP-Kenntnisse. Mit HTML kannst du ein Formular anlegen (oder du nutzt direkt die wp_login_form-Funktion), mit PHP wird die dahinterstehende Logik gebaut (Datenspeicherung und -prüfung). Außerdem brauchst du einen Datenträger, wo du die Nutzerdaten persistent sichern kannst.

Für Letzeres wäre es ratsam, das Rollensystem (und somit die Datenbank) von WordPress zu nutzen bzw. über ein Membership Plugin zu erweitern (über welches du in WordPress die Zugriffsrechte von Nutzerrollen auf jeweilige Seiten steuerst). Dein PHP-Skript würde für eine Registrierung einen neuen Nutzer anlegen, der mit einer entsprechenden Nutzerrolle ausgestattet wird. Für den Login gibt es ebenso bereits eine Funktion (wp_signon).

Hinsichtlich des Produktiveinsatz würde ich zum Schluss noch folgende Anmerkungen ergänzen:

  1. Informiere dich über deine Pflichten gegenüber den Nutzern. Im Hinblick auf den Datenschutz gibt es einiges, was beim Speichern persönlicher Daten beachtet werden muss.
  2. Es gibt eine Reihe an WordPress Plugins, mit denen sich ein Login viel leichter umsetzen lässt. Eine Auswahl stellt z.B. diese Seite vor. PHP-Anfängern würde ich davon abraten, ein Loginsystem (mit individueller Nutzerregistrierung) zu entwickeln, denn zu leicht können sich Fehler/Sicherheitslücken einschleichen.

Zuerst musst du deiner html Datei die Endung .php geben damit möglicher php Code ausgeführt werden kann. Anschließend kannst du in einen beliebigen teil deines Bodys einen php Block platzieren. In diesen kannst du dann dein Code für den Log- In rein pasten.

<?php

    <form action="06-formulare-post.php" method="POST">

    <?php // Name, Eingabefeld mit dem Wert'falls es leer ist, gebe das bereits geschriebene aus'?>

    <h3>Vorname</h3><input type="text" name="firstname" value="<?php if(!empty($_POST['firstname'])) echo $_POST['firstname']; ?>" /><br>

    <?php // Nachname, Eingabefeld mit dem Wert'falls es leer ist, gebe das bereits geschriebene aus'?>

    <h3>Nachname</h3><input type="text" name="lastname" value="<?php if(!empty($_POST['lastname'])) echo $_POST['lastname']; ?>" /><br>

    <?php // Passwort, Eingabefeld?>

    <h3>Passwort</h3><input type="password" name="password" /><br><br><br>

    <?php // Abschicken, Button?>

    <input type="submit" value="Abschicken!" /><br>

?>

Die beiden fettgeschriebenen tags stehen für den Anfang und das Ende eines Blocks.

Hoffe ich konnte helfen

Woher ich das weiß:eigene Erfahrung
regex9  12.09.2022, 03:26

HTML-Code ist innerhalb eines PHP-Blocks nicht zulässig. Daher sollten die fettgeschriebenen Zeichen weggelassen werden.

Statt Überschriften an die Seite der Eingabefelder zu setzen, wären Labels zudem passender.

Beispiel:

<label for="vorname">Vorname</label>
<input id="vorname" name="firstname">
0