Wie leite ich nicht angemeldete Benutzer auf eine bestimmte Seite um?
4 Antworten
- Stimmen
-
- 2014-01-31
Hier sind 2 Beispiele,die Sie leicht ändernmüssen,damitesfür Ihre spezifischen Anforderungenfunktioniert.
add_action( 'admin_init', 'redirect_non_logged_users_to_specific_page' ); function redirect_non_logged_users_to_specific_page() { if ( !is_user_logged_in() && is_page('add page slug or ID here') && $_SERVER['PHP_SELF'] != '/wp-admin/admin-ajax.php' ) { wp_redirect( 'http://www.example.dev/page/' ); exit; } }
Fügen Sie diesin die Funktionsdatei Ihres untergeordneten Themasein,ändern Sie die Seiten-ID oder den Slug und die Weiterleitungs-URL.
Sie können auchfolgenden Code verwenden:
add_action( 'template_redirect', 'redirect_to_specific_page' ); function redirect_to_specific_page() { if ( is_page('slug') && ! is_user_logged_in() ) { wp_redirect( 'http://www.example.dev/your-page/', 301 ); exit; } }
Sie können die Nachricht direkt zur Seite hinzufügen oder wenn Sie die Nachrichtfür allenicht angemeldeten Benutzer anzeigenmöchten, Fügen Siees dem Code hinzu .
Here are 2 examples which you will need to modify slightly to get it working for your specific needs.
add_action( 'admin_init', 'redirect_non_logged_users_to_specific_page' ); function redirect_non_logged_users_to_specific_page() { if ( !is_user_logged_in() && is_page('add page slug or ID here') && $_SERVER['PHP_SELF'] != '/wp-admin/admin-ajax.php' ) { wp_redirect( 'http://www.example.dev/page/' ); exit; } }
Put this in your child theme functions file, change the page ID or slug and the redirect url.
You could also use code like this:
add_action( 'template_redirect', 'redirect_to_specific_page' ); function redirect_to_specific_page() { if ( is_page('slug') && ! is_user_logged_in() ) { wp_redirect( 'http://www.example.dev/your-page/', 301 ); exit; } }
You can add the message directly to the page or if you want to display the message for all non logged in users, add it to the code.
-
Vielen Dankfür Ihre Antwort. Diese "add_action" ("template_redirect","redirect_to_specific_page") hatmirgefallen. Funktion redirect_to_specific_page () { if (is_page ('http://mydomain.com/participate') &&!is_user_logged_in ()) { wp_redirect ('http://mydomain.com/login',301); Ausfahrt; }} } `AberesfunktioniertnichtThanks for you answer I did like this `add_action('template_redirect', 'redirect_to_specific_page'); function redirect_to_specific_page() { if ( is_page('http://mydomain.com/participate') && !is_user_logged_in()) { wp_redirect('http://mydomain.com/login', 301); exit; } }` But its not working
- 0
- 2014-01-31
- user3187719
-
Verwenden Sie hier die Seitei.d oder slug,nicht die URL http://mydomain.com/participate http://codex.wordpress.org/Conditional_TagsUse the page i.d or slug here, not the url http://mydomain.com/participate http://codex.wordpress.org/Conditional_Tags
- 0
- 2014-01-31
- Brad Dalton
-
is_page ('teilnehmen')is_page('participate')
- 0
- 2014-01-31
- Brad Dalton
-
- 2017-11-17
Das wärebesser:
if ( !is_user_logged_in() ) { auth_redirect(); } // continue as normal for authenticated users
Dadurch wird der Benutzer auf die Anmeldeseite umgeleitet.Nach dem Anmelden wird der Benutzer zurück zu der sicheren Seitegeleitet,auf dieer ursprünglich zugreifen wollte.
Dokumentation hier:
https://codex.wordpress.org/Function_Reference/auth_redirect
This would be better:
if ( !is_user_logged_in() ) { auth_redirect(); } // continue as normal for authenticated users
What this does is redirect the user to the login page. Once logged in, the user is redirected back to the secure page they were trying to access initially.
Documentation here:
https://codex.wordpress.org/Function_Reference/auth_redirect
-
- 2014-01-30
Wie können wir Ihnen sagen,wo Siees ablegen sollen,wenn Sie unsnichtgesagt haben,was und wo Siees anzeigenmöchten? Ganze Beiträge? Seiten? Benutzerdefinierte Teile von Seiten? Entschuldigung ... Ich denke,meine Kristallkugelfunktioniert heutenichtganz.
Da Siees sind undich Sie zitiere: "Ein Neulingin WordPress",sollten Sie lieber lernen,alsnacheiner direkten Antwort zufragen.
Für wo sollten Sie den Link Referenz 1 lesen. Hiererfahren Sie,in welche Datei Sie sieeinfügenmüssen.
Für wie sollten Sie zuerst die Referenzlinks 2 und 3 lesen.
Insgesamt solltees ungefähr so aussehen:
if ( is_user_logged_in() ) { the_content(); } else { echo 'For members only'; }
Natürlichmuss der obige Codein eine Schleife gehen. Sie könnenes so komplex odereinfach aufbauen,wie Siemöchten. Zum Beispiel können Sie anstelle voneinfachem Text,wenn Sienicht angemeldet sind,beispielsweise dasgesamte Anmeldeformular oder - wieich vorschlagen würde -einen geteilten Bildschirm anzeigen,auf dem sich der Benutzer anmelden (da der Benutzerein Konto haben kann,aber vergessen hat,sich anzumelden) oder sich anmelden kann (wenner keinen hat).
Nach Kommentaren unten hinzugefügt:
Um die
header
mit demwp_login_url
umzuleiten,überprüfen Sieerneut die Referenzen 1 und 2 unten:if ( is_user_logged_in() ) { the_content(); } else { header('Location: ' . wp_login_url()); }
Referenz:
How can we tell you where to put it if you didn't tell us what and where you want to display it? Whole posts? Pages? Custom parts of pages? Sorry... I guess my crystal ball isn't quite working today.
Since you are, and I quote you: "a newbie to wordpress" you should rather learn, than to ask for direct answer.
As for where you should read the reference 1 link. This will tell you which file you need to put it in.
As for how to do it you should first read reference link 2 and 3.
Overall it should look something like this:
if ( is_user_logged_in() ) { the_content(); } else { echo 'For members only'; }
Of course the above code needs to go into a loop. You can build it up as complex or as simple as you want. For example instead of simple text if not logged in you can display whole sign up form for example or - as I would suggest - a divided screen where user can log in (since user can have an account but forgot to sign in) or sign up (if he doesn't have one).
Added after comments below:
To redirect use
header
with thewp_login_url
- again, check references 1 and 2 below:if ( is_user_logged_in() ) { the_content(); } else { header('Location: ' . wp_login_url()); }
Reference:
-
Eigentlich kenneich die Funktion von WordPressnicht,die die angeforderte URL oder den Permalink zurückgibt.Und über die Dispaly-Nachricht,lassen Siees,ichmöchte sienur umleiten,wenn sienacheinerbestimmten URLfragen,ohneprotokolliert zu werden.Actually i don't know the funtction on wordpress that returns the requested URL or permalink. And about the dispaly message, leave it, I want to just want to redirect them when they request for certain URL without being logged.
- 0
- 2014-01-31
- user3187719
-
kannichesmit $pagenowmachen?can I do it with $pagenow?
- 0
- 2014-01-31
- user3187719
-
@ user3187719 hatmeine ursprüngliche Antwortbearbeitet und die Lösung zum Umleiten hinzugefügt.PS.`$pagenow`?Sie versuchen,eine Fliegemit einer Kanone zutöten,um sicherzugehen,dass siefunktioniert,aber warum so komplex?Halteeseinfach.PS2: Lerne PHP und WP Codex.@user3187719 edited my original answer and added the solution to redirect. PS. `$pagenow`? You are trying to kill a fly with a cannon sure it will work, but why so complex? Keep it simple. PS2: Learn PHP and WP Codex.
- 0
- 2014-01-31
- Borek
-
- 2014-12-13
Sie könnennicht zueinerbestimmten Seite umleiten,aberjedernicht angemeldete Benutzer wird zum Anmeldebildschirm umgeleitet.
<?php auth_redirect(); ?>
Wordpress-Referenz:
auth_redirect()
Nur umeine andere Lösung zuerwähnen.
You can't redirect to a specific page, but every non-logged-in user will be redirected to Log-In Screen.
<?php auth_redirect(); ?>
Wordpress Reference:
auth_redirect()
Just to mention another solution.
So leiten Sienichtprotokollierte Benutzer,dieeine bestimmte Seite/URL anfordern,zueiner anderen Seite/URL um und zeigeneine Meldung wie "Nurfür Mitglieder" an.Ich weiß,dasses ziemlicheinfachist,mit der Funktion! Is_user_logged_in () zu codieren,aberich weißnicht,wieiches codieren soll,weilichein Neulingin WordPressbin.Sagen Siemirbitte die Datei,in die auch der Codeeingefügt werden soll.