Eine benutzerdefinierte WordPress register Funktion erstellen

11. Dezember 2021
Andreas Geyer

In einem WordPress Projekt bei dem sich andere registrieren können, darf eine Funktion nie fehlen, die wp_register() Funkion.

Die wp_register() Funktion zeigt einen Link an, der es dem Nutzer ermöglicht, zur Registrierungsseite zu navigieren, wenn er nicht angemeldet ist und die Registrierung aktiviert ist, oder zum Dashboard, wenn er angemeldet ist.

Filter vs. eigene Funktion

In einem unserer Projekte wollten wir diese Funktion einsetzen, jedoch etwas modifiziert an unsere Bedürfnisse. Anstatt jedoch den möglichen WP Filter zu nutzen, haben wir uns für die flexiblere Option entschieden und uns unsere eigene Funktion entwickelt. Hier kommt uns der große Vorteil von Open Source Code zu Gute. Anstatt sich den eigenen Code selber zu überlegen, kann man den WordPress Code auch einfach als Ausgangspunkt seiner neuen Funktion nutzen. Dies gilt natürlich auch für viele weitere nützliche WordPress Funktionen.

Eigene WordPress register Funktion

In unserem Fall wollten wir, wenn der Nutzer angemeldet ist, nicht zum Dashboard navigieren, sondern auf eine extra angelegte Seite. Hierfür wurde die ursprüngliche wp_register() Funktion einfach übernommen und dementsprechend angepasst.

/**
 * Display the Registration link.
 *
 * Display a link which allows the user 
 * to navigate to the registration page if
 * not logged in and registration is 
 * enabled or to the ``Intern`` Page if logged in.
 *
 * @param string $before Text to output before the link. Default `<li>`.
 * @param string $after  Text to output after the link. Default `</li>`.
 * @param bool   $echo   Default to echo and not return the link.
 * @return void|string 
 */
function wp_register2($before = '<li>', $after = '</li>', $echo = true)
{
	if (!is_user_logged_in()) {
		if (get_option('users_can_register')) {
			$link = $before . '<a href="';
			$link .= esc_url(wp_registration_url()); 
			$link .= '">' . __('Register') . '</a>' . $after;
		} else {
			$link = '';
		}
	} elseif (current_user_can('read')) {
		$link = $before . '<a href="'; 
		$link .= esc_url(home_url('intern'));
		$link .= '">Intern</a>' . $after;
	} else {
		$link = '';
	}

	if ($echo) {
		echo $link;
	} else {
		return $link;
	}
}

Am Ende nutzen wir einfach unsere neue wp_register2() Funktion. Die minimale Änderung hier hätte auch mittels Filter umgesetzt werden können. Jedoch geht hierbei etwas Flexibilität verloren, da innerhalb des Filters nur der fertige String für den Link zur Verfügung steht. Vergleiche hierzu gerne unsere und die ursprüngliche wp_regsiter() Funktion. Nutzt du ausschließlich Filter oder nutzt du auf Basis von WordPress Funktionen gerne auch deine eigenen? Lass es uns gerne wissen!

Teile diesen Artikel gerne!

Schreibe einen Kommentar

Hier noch etwas interessantes für Dich dabei?

Thumbnail zu Behind the scenes - unsere Website

Behind the scenes – unsere Website

In diesem Artikel wollen wir Dir zeigen, wie unsere Website eigentlich entstanden ist. Vom Konzept über die Entwicklung bis hin zum Hosting. Wir nehmen Dich mal „Behind the scenes“ und zeigen Dir, was dabei alles so passiert.

💡 Mehr erfahren!

Du möchtest auf dem Laufenden bleiben und regelmäßig Tipps von uns erhalten, die Dir weiterhelfen? Dann abonniere unser #QbitOneMagazin und verpasse nichts mehr!

Deine Anmeldung konnte nicht gespeichert werden. Bitte versuche es erneut.
Deine Anmeldung war erfolgreich.