WordPress 로그인 후 리다이렉트
기존 사이트를 기반으로 맞춤형 WordPress 테마를 만들고 있습니다.
작성한 대체 대시보드를 사용하고 싶습니다.
'에게 '사용할 수 있습니다.'로 할 수 있을까요?news.php 후 " " "가 아닌 "가 로그인 후"/wp-admin/ '?
--
편집: 이 플러그인은 정상적으로 동작하고 있습니다만, 서드파티제 플러그인을 사용하는 경우보다 안전하기 때문에 functions.php를 통해 수동으로 이 작업을 수행할 수 있는 방법을 찾을 수 있는 사용자에게는 현상금이 제공됩니다.
이것으로 당신의 문제가 해결될 것입니다.여기서 찾은 답변에서 각색한 것입니다.
다음 코드 조각을 함수에 추가합니다.주제 php 파일:
function admin_default_page() {
return '/new-dashboard-url';
}
add_filter('login_redirect', 'admin_default_page');
인정된 답은 매우 틀렸다.WordPress Core를 수정해서는 안 됩니다.특정 업데이트 시 편집 내용이 손실될 뿐만 아니라 임의로 변경한 내용이 다른 기능을 손상시키거나 사이트의 보안까지 위협할 수 있습니다.
코어에는 액션 훅과 필터가 포함되어 있어 코드를 변경하지 않고 기능을 변경할 수 있습니다.
필터를 사용하여 특정 사용자를 리디렉션하는 예는 여기에서 찾을 수 있으며 훨씬 더 강력한 문제 해결 방법입니다.
특정 문제에 대해서는, 다음의 조작을 실시합니다.
function login_redirect( $redirect_to, $request, $user ){
return home_url('news.php');
}
add_filter( 'login_redirect', 'login_redirect', 10, 3 );
커스터마이즈된 링크를 다음과 같이 사용할 수도 있습니다.
https://example.com/wp-login.php?redirect_to=https://example.com/news.php
이게 도움이 될지도 몰라.Peter 로그인 리다이렉트
로그인 및 로그아웃 후 사용자를 다른 위치로 리디렉션합니다.
특정 사용자, 특정 역할을 가진 사용자, 특정 기능을 가진 사용자 및 기타 모든 사용자에 대한 포괄적인 규칙 집합을 정의합니다.또, 포스트 등록용의 리다이렉트 URL 를 설정합니다.이것은 모두 [설정(Settings)]> [로그인/로그아웃(Login/Logout)]리다이렉트로 관리됩니다.
구문을 할 수 .
[variable]username[/variable]로그인 시 시스템이 동적 URL을 작성하고 해당 텍스트를 사용자의 사용자 이름으로 대체합니다."userslug", "homeurl", "siteurl", "postid-23", "http_referer"는 URL "variables"입니다.
add_action('wp_head','redirect_admin');
function redirect_admin(){
if(is_admin()){
wp_redirect(WP_HOME.'/news.php');
die; // You have to die here
}
}
또는 다른 사용자만 리디렉션하는 경우:
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
}
}
php 5.3+ 를 사용하고 있는 경우는, 다음과 같은 익명 함수를 사용할 수 있습니다.
add_filter( 'login_redirect', function() { return site_url('news'); } );
테마 내 로그인 플러그인은 도움이 될 수 있습니다.이 플러그인을 사용하면 특정 역할의 사용자를 특정 페이지로 리디렉션할 수 있습니다.
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;
}
받아들여진 대답은 분명 좋은 답이 아니야!잠시 동안 문제가 해결되겠지만 다음에 WordPress 설치를 업데이트하면 어떻게 됩니까?코어 파일이 덮어쓰기되어 모든 수정 내용이 손실될 수 있습니다.
다른 사람들이 이미 언급했듯이(Dan과 Travis가 대답) 정답은 필터를 사용하는 것입니다.
WooCommerce의 경우: 로그인/로그아웃 리다이렉트 - 2021년에 기능
add_filter('woocommerce_login_redirect', 'login_redirect');
function login_redirect($redirect_to) {
return home_url();
}
add_action('wp_logout','logout_redirect');
function logout_redirect(){
wp_redirect( home_url() );
exit;
}
// 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`}
다음은 사용자 역할에 따라 사용자를 리디렉션하는 코드 조각입니다.
add_filter( 'login_redirect', 'kp_login_redirect', 10, 3 );
function kp_login_redirect( $redirect_to, $request, $user ) {
if ( isset( $user->roles ) && is_array( $user->roles ) ) {
if ( in_array( 'subscriber', $user->roles )) {
$redirect_to = home_url("dashboard");
}
}
return $redirect_to;
}
네트워크 사이트(멀티 컴포넌트)를 사용하고 있는 경우는, 다음의 조작을 실시합니다.
add_filter( 'login_redirect', 'kp_login_redirect', 10, 3 );
function kp_login_redirect( $redirect_to, $request, $user ) {
if ( isset( $user->roles ) && is_array( $user->roles ) ) {
if ( in_array( 'subscriber', $user->roles )) {
$redirect_to = network_site_url("dashboard");
}
}
return $redirect_to;
}
// 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
} }
몇 가지 다른 답변을 바탕으로 저는 다음과 같이 생각해 냈습니다.
/**
* Require login on all pages
*/
function so8127453_require_login() {
if ( ! is_user_logged_in() ) {
$protocol = $_SERVER['HTTPS'] == 'on' ? 'https://' : 'http://';
$base = $_SERVER['SERVER_NAME'];
$uri = $_SERVER['REQUEST_URI'];
$attempted_accessed_url = $protocol . $base . $uri;
$login_url = 'https://' . $base . '/wp-login.php?redirect_to=' . $attempted_accessed_url;
wp_redirect( $login_url );
}
}
add_action( 'template_redirect', 'so8127453_require_login' );
모든 트래픽을 로그인 페이지로 리다이렉트 합니다.그 후 시도된 액세스 URL로 이동합니다.
"WordPress 로그인 페이지 새로 고침 및 리디렉션 문제 수정 방법"을 검색했지만 좋은 수정 방법을 찾을 수 없었습니다.이 Stackoverflow 질문에서 도움을 받았습니다.필요할 때 도움을 받을 수 있도록 공유하고 싶습니다.
제 웹사이트에서 이메일과 비밀번호를 입력할 때 wp-admin으로 몇 번이고 리다이렉트하여 비밀번호를 요청했습니다.이 코드를 사용하면 문제를 해결할 수 있습니다.
function admin_default_page() {
return '/';
}
add_filter('login_redirect', 'admin_default_page');
박스에서 꺼내자마자 이런 걸 발견했어요원하는 경우 인수를 하드코드된 사이트로 대체할 수 있습니다.
wp_loginout($_SERVER['REQUEST_URI']);
여기에는 다양한 방법이 있습니다.다음 두 가지 옵션이 있습니다.
- 사용방법:
OP가 페이지의 ID를 알고 있는 경우 다음 작업이 수행됩니다.
function add_login_check()
{
if ( is_user_logged_in() && is_page(765)) {
wp_redirect('https://sample.com/dash'); # Using wp_redirect
exit;
}
}
- 사용법
이를 위해서는 특정 페이지의 ID를 알아야 합니다.
function add_login_check()
{
if (is_user_logged_in())) {
if (is_page(765)){ # If the user is in the page with the ID 765
wp_safe_redirect( get_permalink('234')); # To get the URL of a specific page from the ID, and using wp_redirect
exit;
}
}
}
로그인 성공 후 글로벌하게 리다이렉트하려면 wp-login에서 이 코드를 찾습니다.php, 섹션 아래.
<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); ?>" />
를 치환합니다.<?php echo esc_attr($redirect_to); ?>【URL】【URL】URL http http : // 、 / other wise 이 url url 。
한 후 으로 리다이렉트 합니다.<form name="registerform">★★★★★★ 。
그 기능들.php 파일은 로그인 리다이렉트와는 관계가 없습니다.이것은 wp-module이라고 생각하셔야 합니다.php 파일에서는 로그인 인터페이스 전체를 변경할 수 있습니다.또, 유저가 /wp-admin/디렉토리 대신에 커스텀 페이지로 리다이렉트 하도록 강제할 수 있습니다.
Windows 또는 텍스트에디터를 사용하고 있는 경우는, 메모장에서 파일을 엽니다.로그인 후에 리다이렉트 하는 폴더(「wp-admin/」)로 변경해 주세요.Ctrl+F 를 누르고, 파일명을 변경하고, 디폴트 파일명은 「profilephp」를 입력해 주세요.
if ( !$user->has_cap('edit_posts') && ( empty( $redirect_to ) || $redirect_to == 'wp-admin/' || $redirect_to == admin_url() ) )
$redirect_to = admin_url('profile.php');
wp_safe_redirect($redirect_to);
exit();
또는 "등록 취소 플러그인" http://wordpress.org/extend/plugins/registration-login/,을 사용하여 로그인 후 리다이렉트 URL 및 리다이렉트할 곳의 링크를 편집하기만 하면 사용자 고유의 커스텀 프로파일을 얻을 수 있습니다.
언급URL : https://stackoverflow.com/questions/8127453/redirect-after-login-on-wordpress
'programing' 카테고리의 다른 글
| JSONObject의 잭슨2는 무엇입니까? (0) | 2023.03.08 |
|---|---|
| 개체를 json 문자열 대신 JObject로 직접 직렬화합니다.그물 (0) | 2023.03.08 |
| 오브젝트를 명확히 하지 않고 circe를 사용하여 ADT를 디코딩하는 방법 (0) | 2023.03.08 |
| $스코프를 테스트하려면 어떻게 해야 합니까?시계(각도)JS) Jasmine의 변화? (0) | 2023.03.08 |
| $routeParams는 해결 기능에서 작동하지 않습니다. (0) | 2023.03.08 |