it-swarm.com.de

Redirect nach dem Login auf WordPress

Ich erstelle ein angepasstes WordPress Theme basierend auf einer vorhandenen Site.

Ich möchte ein alternatives Dashboard verwenden, das ich erstellt habe.

Wie kann ich den Benutzer an 'news.php 'nach dem Login statt' /wp-admin/ '?

-

BEARBEITEN: Habe ein funktionierendes Plug-in dafür, aber das Bounty ist immer noch für jeden verfügbar, der eine manuelle Möglichkeit dazu über functions.php finden kann, da es sicherer wäre, als ein Plug-in eines Drittanbieters zu verwenden .

46

Dies sollte Ihr Problem lösen. Nach einer Antwort gefunden hier.

function admin_default_page() {
  return '/new-dashboard-url';
}

add_filter('login_redirect', 'admin_default_page');
80
Travis

Die akzeptierte Antwort ist sehr falsch. Man sollte niemals den WordPress Core ändern. Bei einem bestimmten Update gehen nicht nur Änderungen verloren, sondern einige Änderungen, die Sie aus einer Laune heraus vornehmen, können andere Funktionen beeinträchtigen oder sogar die Sicherheit Ihrer Site gefährden.

Aktions-Hooks und -Filter sind im Core enthalten, um das Ändern der Funktionalität zu ermöglichen, ohne den Code zu ändern.

Ein Beispiel für die Verwendung von login_redirect Filter zum Weiterleiten bestimmter Benutzer finden Sie hier und ist eine viel robustere Lösung für Ihr Problem.

Für Ihr spezielles Problem möchten Sie Folgendes tun:

function login_redirect( $redirect_to, $request, $user ){
    return home_url('news.php');
}
add_filter( 'login_redirect', 'login_redirect', 10, 3 );
31
Dan

Dies kann helfen. Anmeldeumleitung von Peter

Leiten Sie Benutzer nach dem Anmelden und Abmelden an andere Orte weiter.

Definieren Sie eine Reihe von Umleitungsregeln für bestimmte Benutzer, Benutzer mit bestimmten Rollen, Benutzer mit bestimmten Funktionen und eine allgemeine Regel für alle anderen Benutzer. Legen Sie außerdem eine Weiterleitungs-URL für die Nachregistrierung fest. Dies wird alles unter Einstellungen> Login/Logout-Weiterleitungen verwaltet.

Sie können die Syntax [variable]username[/variable] in Ihren URLs, damit das System bei jeder Anmeldung eine dynamische URL erstellt und diesen Text durch den Benutzernamen des Benutzers ersetzt. Zusätzlich zum Benutzernamen gibt es "userslug", "homeurl", "siteurl", "postid-23", "http_referer" und Sie können auch Ihre eigene benutzerdefinierte URL "variables" hinzufügen ...

12
Vasanthan.R.P
add_action('wp_head','redirect_admin');
function redirect_admin(){
  if(is_admin()){
    wp_redirect(WP_HOME.'/news.php');
    die; // You have to die here
  }
}

Oder wenn Sie nur andere Benutzer umleiten möchten:

add_action('wp_head','redirect_admin');
function redirect_admin(){
  if(is_admin()&&!current_user_can('level_10')){
    wp_redirect(WP_HOME.'/news.php');
    die; // You have to die here
  }
}
7
Leo Jiang

Das Theme My Login Plugin kann helfen - es ermöglicht Ihnen, Benutzer bestimmter Rollen auf bestimmte Seiten umzuleiten.

2
gArn

Bitte versuchen Sie dies, es funktioniert für jede Umleitung auf WordPress

add_filter('woocommerce_login_redirect', 'wc_login_redirect'); 

function wc_login_redirect( $redirect_to ) {

   $redirect_to = 'PUT HERE URL OF THE PAGE';
   return $redirect_to;

}

Wenn Sie PHP 5.3+ haben, können Sie eine anonyme Funktion wie folgt verwenden:

add_filter( 'login_redirect', function() { return site_url('news'); } );
2
Farahmand

Die akzeptierte Antwort ist eindeutig keine gute Antwort! Es kann Ihr Problem für eine Weile lösen, aber was passiert beim nächsten Update Ihrer WordPress Installation? Ihre Kerndateien werden möglicherweise überschrieben und Sie verlieren alle Ihre Änderungen.

Wie bereits von anderen angegeben (Dan und Travis antworten), ist die richtige Antwort die Verwendung des login_redirect Filter.

0
Mike

Sie können den benutzerdefinierten Link auch verwenden als:

https://example.com/wp-login.php?redirect_to=https://example.com/news.php
0
Hossein

Um nach erfolgreicher Anmeldung global umzuleiten, finden Sie diesen Code in der Datei wp-login.php im Abschnitt.

   <form name="loginform" id="loginform" action="<?php echo esc_url( site_url( 'wp-login.php', 'login_post' ) ); ?>" method="post">

<input type="hidden" name="redirect_to" value="<?php echo esc_attr($redirect_to); ?>" />

und ersetzen Sie <?php echo esc_attr($redirect_to); ?> durch Ihre URL, zu der Sie umleiten möchten. Die URL muss mit http: // beginnen und auf/other wise page redirect to default location enden.

Führen Sie dieselbe Formularumleitung nach der Registrierung mit derselben Datei aus, jedoch im Abschnitt <form name="registerform">.

0
// add the code to your theme function.php
//for logout redirection
add_action('wp_logout','auto_redirect_after_logout');
function auto_redirect_after_logout(){
wp_redirect( home_url() );
exit();
}
//for login redirection
add_action('wp_login','auto_redirect_after_login');
function auto_redirect_after_login(){
wp_redirect( home_url() );
exit();
`enter code here`}
0
Lokesh Metta
// Used theme's functions.php  
add_action('login_form', 'redirect_after_login'); 
function redirect_after_login() 
{     
global $redirect_to; 
if   (!isset($_GET['redirect_to'])) 
{ 
$redirect_to =   get_option('sample-page');
//  sample-page = your page name after site_url
} }
0
Omprakash Patel