Zum Inhalt springen

bueltge.de [by:ltge.de]

  • Startseite
  • Photographie
  • WordPress Beratung
    • WordPress Plugins
    • WordPress Themes
    • WordPress Tipps
    • WordPress Archive
  • Thüringen Erfahren
  • Impressum & Datenschutzerklärung
    • Wunschliste

WordPress Login Formular

Die Zeiten ändern sich.

Dieser Beitrag scheint älter als 13 Jahre zu sein – eine lange Zeit im Internet. Der Inhalt ist vielleicht veraltet.

Vor geraumer Zeit habe ich mal einen kurzen Artikel veröffentlicht, in dem ich gezeigt habe, wie man die Links zum Ein- und Ausloggen in WordPress nutzt. In diesem Artikel möchte ich nun ein wenig weiter gehen und zeigen, wie man beispielsweise das Login-Formular in das Theme holt. Damit sind Anpassungen an das Design und die Integration an die eigenen Bedürfnisse sehr einfach umzusetzen.

Im ersten Fall möchte ich euch das klassische Login Formular zeigen, so dass es nicht gleich zu viel Code wird. Die folgende Syntax stellt dabei ein einfaches Login Formular im Theme dar. Ich habe keine weiteren Anpassungen vorgenommen und habe mich am Standard von WordPress orientiert.


<form action="<?php echo wp_login_url( get_permalink() ); ?>" method="post">
	<label for="log">
		<input type="text" name="log" id="log" value="<?php echo wp_specialchars( stripslashes($user_login), 1 ) ?>" size="22" /> User
	</label><br />
	<label for="pwd">
		<input type="password" name="pwd" id="pwd" size="22" /> Password
	</label><br />
	<input type="submit" name="submit" value="Send" class="button" />
	<label for="rememberme"><input name="rememberme" id="rememberme" type="checkbox" checked="checked" value="forever" /> Remember me</label>
</form>

WP Loginform

Nun ist das nicht immer ausreichend und abhängig von den Usern, die geloggt sind, und ob man sich überhaupt im Theme registrieren kann, habe ich ein kleines Beispiel geschrieben, welches diverse Aspekte beachtet.
Mit der folgenden Syntax ist dabei die Ansicht für geloggte User (if ( $user_ID )) eine völlig andere und neue User bekommen das Formular nur dann, wenn sie sich registrieren dürfen (get_option('users_can_register')); abhängig von den Einstellungen im Backend von WordPress.
Ebenso bekommen User, die ein User_Level größer 1 (if ( $user_level >= 1 )) haben, einen Link mehr, direkt zum Schreiben eines Artikels. Alternativ kann hier auch mit der Funktion current_user_can() gearbeitet werden und daher explizit das Objekt der Rolle abgefragt werden.


<?php
global $user_ID, $user_identity, $user_level;
if ( $user_ID ) { ?>

	<h3><?php _e( 'Control panel', FB_BASIS_TEXTDOMAIN ); ?></h3>
	<ul>
		<li><?php _e( 'Identified as', FB_BASIS_TEXTDOMAIN ); ?> <strong><?php echo $user_identity ?></strong>.
			<ul>
				<li><a href="<?php bloginfo('url') ?>/wp-admin/"><?php _e( 'Dashboard', FB_BASIS_TEXTDOMAIN ); ?></a></li>

				<?php if ( $user_level >= 1 ) { ?>
					<li><a href="<?php bloginfo('url') ?>/wp-admin/post-new.php"><?php _e( 'Write an article', FB_BASIS_TEXTDOMAIN ); ?></a></li>
				<?php } ?>

				<li><a href="<?php bloginfo('url') ?>/wp-admin/profile.php"><?php _e( 'Profile', FB_BASIS_TEXTDOMAIN ); ?></a></li>
				<li><a href="<?php wp_logout_url( urlencode($_SERVER['REQUEST_URI']) ); ?>"><?php _e( 'Exit', FB_BASIS_TEXTDOMAIN ); ?></a></li>
			</ul>
		</li>
	</ul>

<?php } elseif ( get_option('users_can_register') ) { ?>

		<h3><?php _e( 'Identification', FB_BASIS_TEXTDOMAIN ); ?></h3>
		<ul>
			<li>
				<form action="<?php echo wp_login_url(get_permalink()); ?>" method="post">
					<p>
						<label for="log">
							<?php _e( 'User', FB_BASIS_TEXTDOMAIN ); ?>
							<input type="text" name="log" id="log" value="<?php echo wp_specialchars(stripslashes($user_login), 1) ?>" size="22" />
						</label><br />
						<label for="pwd">
							<?php _e( 'Password', FB_BASIS_TEXTDOMAIN ); ?>
							<input type="password" name="pwd" id="pwd" size="22" />
						</label><br />
						<input type="submit" name="submit" value="<?php _e( 'Send', FB_BASIS_TEXTDOMAIN ); ?>" class="button" />
						<label for="rememberme">
							<input name="rememberme" id="rememberme" type="checkbox" checked="checked" value="forever" /><?php _e( 'Remember me', FB_BASIS_TEXTDOMAIN ); ?>
						</label><br />
						<input type="hidden" name="redirect_to" value="<?php echo $_SERVER['REQUEST_URI']; ?>"/>
					</p>
				</form>
			</li>
			<li>
				<a href="<?php echo site_url('wp-login.php?action=register', 'login'); ?>"><?php _e( 'Register', FB_BASIS_TEXTDOMAIN ); ?></a>
			</li>
			<li>
				<a href="<?php echo site_url('wp-login.php?action=lostpassword', 'login');	 ?>"><?php _e( 'Recover password', FB_BASIS_TEXTDOMAIN ); ?></a>
			</li>
		</ul>

<?php } ?>

Wem die User-Level nicht ausreichen, der kann WordPress auch erweitern, entweder via Code, hier erklärt, oder mit Hilfe eines Plugins.
Mit Hilfe von einigen Zeilen PHP kann schnell ein Berechtigungsobjekt einer Rolle zugewiesen werden, beispielsweise in beim Aktivieren des Theme wie folgt.


function my_new_object() {
	global $wp_roles;

	$wp_roles->add_cap('administrator', 'MyObject');
}

// start an activation theme
if ( is_admin() && isset($_GET['activated'] ) && $pagenow == 'themes.php' )
	my_new_object();

Das Objekt kann dann einfach via Standard angefragt werden.
if ( current_user_can('MyObject') )

Alternativ kann man natürlich auch neue Rollen anlegen: add_role('Neue_Rolle', 'Neuer Name der Rolle');. Die Funktion erlaubt auch das gleichzeitige übernehmen von Rechten, dazu steht der dritte optionale Parameter bereit, der mehrere Werte in einem Array erwartet. Ansonsten die Objekte via add_cap() hinzufügen.

Das ist nur ein kleiner Ansatz, viele Möglichkeiten ergeben sich – viel Erfolg beim Nutzen der Möglichkeiten.

Ab WordPress 3.0

Ab der Version 3.0 geht das alles ein wenig einfacher und es gibt eine Funktion für das Formular um den User das Einloggen zu ermöglichen. Folgende Parameter sind möglich.


wp_login_form(array(
    'echo' => true,
    'redirect' => site_url($_SERVER['REQUEST_URI']), 
    'form_id' => 'loginform',
    'label_username' => __('Username'),
    'label_password' => __('Password'),
    'label_remember' => __('Remember Me'),
    'label_log_in' => __('Log In'),
    'id_username' => 'user_login',
    'id_password' => 'user_pass',
    'id_remember' => 'rememberme',
    'id_submit' => 'wp-submit',
    'remember' => true,
    'value_username' => ,
    'value_remember' => false
));

Damit könnte ein Login wie folgt aussehen:


global $user_login;

if (is_user_logged_in()) {
    echo __( 'Hello', FB_BASIS_TEXTDOMAIN ) . $user_login . '<a href="' . wp_logout_url() . '" title="' . __( 'Logout', FB_BASIS_TEXTDOMAIN ) . '">' . __( 'Logout', FB_BASIS_TEXTDOMAIN ) . '</a>';
} else {
    wp_login_form();
}
Veröffentlicht am 3. November 2009
Kategorisiert in Tipps, WordPress Verschlagwortet mit Formular, Login, PHP, Template, Theme, WordPress, WP

Von Frank Bültge

bueltge.de [by:ltge.de] wird von Frank Bültge geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.

Alle Beiträge von Frank Bültge anzeigen.

Beitrags-Navigation

Vorheriger Beitrag

Einfach mal Danke sagen?

Nächster Beitrag

Freud und Leid – eine Sicht auf den 9. November

WordPress Beratung

Ich liefere Ihnen umfassende Dienste, spezialisiert auf personifizierte Services für eine Website mit der Open Source Applikation WordPress™. Meine Dienstleistung kann eine einfache bis umfassende Beratung beinhalten, das Erstellen einer Installation mit entsprechender Anpassung im Rahmen der Sicherheit, das Anpassen oder Erstellen vom ersten Bit eines Designs, das Erstellen eines Plugins oder die Anpassung an Ihre Bedürfnisse. Ob Consulting oder Training der Mitarbeiter, eine Rezension der bestehenden Installation, die umfassende Beratung oder eine Zeile Code für Ihre Anforderung – ich kann Ihnen in den meisten Fällen helfen, eine Dienstleistung geben oder vermitteln. Parallel steht ein großes Team neben und hinter mir - Inpsyde GmbH.

Projekte

  • Beautiful Web Type Combinations
  • Experimente
  • Generator für hCard/vCard
  • Git CheatSheet
  • HTML Lorem impsum DE
  • Image2base64 Generator
  • md5/.htpasswd Generator
  • Mehrsprachigkeit mit WordPress
  • Meine Open Source Projekte auf Github
  • Talente, Senior Irgendwas – woher nehmen, wenn nicht stehlen?
  • The Customizer
  • Thüringen Erfahren
  • WordPress Customizing
  • WordPress Entwicklung
  • WordPress im Enterprise Umfeld
  • WordPress im Unternehmen
  • WP Basis Theme
  • WP Engineer
  • WP Plugin Sicherheit

WordPress Tipps & Tricks, Entwicklung

All mein Wissen und Können, ob als WordPress Experte bezeichnet oder nicht, steht Ihnen damit zur Verfügung. WordPress ist seit Jahren ein Begleiter von mir und spielt eine umfassende Rolle beim Entwickeln von Erweiterungen, Designs und Gesamtlösungen. Viele Inhalte und Nachweise meines Wissens bekommen Sie frei auf dieser Website, alternativ für eine recht geringen Preis in Buchform oder das Basiswissen in einem Video-Training. Entscheiden Sie, mit welchem Dienst Sie Ihre Zeit verbringen möchten oder ob Sie meine Erfahrung und Wissen persönlich nutzen wollen.

WordPress ist meine Spezialität im Rahmen der Webentwicklung – Plugins, Dropins und Themes stammen aus meiner Feder. Sprechen Sie mich an, wenn Sie Hilfe brauchen, eine Lösung suchen oder eine Änderung an bestehenden Erweiterungen brauchen. ... mehr erfahren

  • Wunschliste
  • Uses
  • Kolophon
  • Impressum & Datenschutzerklärung
Impressum & Datenschutzerklärung
Powered by WordPress.