모든 기존 사용자에 대한 Wordpress 기본 표시 이름 변경 공개
기존 표시명을 모든 사용자에 대해 공개적으로 변경할 수 있는 방법을 아는 사람 있습니까?first name을 디폴트로 하고 싶습니다.이것은 포럼에 반영되기 때문입니다.모든 포럼을 읽고 모든 해킹을 시도해 봤으니 어떤 제안이라도 해주시면 감사하겠습니다.잘 부탁드립니다
다음은 WordPress(3.8+)의 최신 버전에서 작동하는 리치플레인 응답의 개선된 버전입니다.
/**
* Format WordPress User's "Display Name" to Full Name on Login
* ------------------------------------------------------------------------------
*/
add_action( 'wp_login', 'wpse_9326315_format_user_display_name_on_login' );
function wpse_9326315_format_user_display_name_on_login( $username ) {
$user = get_user_by( 'login', $username );
$first_name = get_user_meta( $user->ID, 'first_name', true );
$last_name = get_user_meta( $user->ID, 'last_name', true );
$full_name = trim( $first_name . ' ' . $last_name );
if ( ! empty( $full_name ) && ( $user->data->display_name != $full_name ) ) {
$userdata = array(
'ID' => $user->ID,
'display_name' => $full_name,
);
wp_update_user( $userdata );
}
}
admin_head 훅을 사용할 때의 문제는 admin 시스템을 사용하지 않는 사용자에게는 작동하지 않는다는 것입니다.또한 marty가 게시한 솔루션을 구현하려는 시도는 update_user_meta()에 의해 display_name이 업데이트 되지 않을 것 같아서 실패했습니다.wp_update_user()를 사용해야 합니다.
제 제안입니다. 이것을 당신의 직무에 포함시키세요.php 파일:
function force_pretty_displaynames($user_login, $user) {
$outcome = trim(get_user_meta($user->ID, 'first_name', true) . " " . get_user_meta($user->ID, 'last_name', true));
if (!empty($outcome) && ($user->data->display_name!=$outcome)) {
wp_update_user( array ('ID' => $user->ID, 'display_name' => $outcome));
}
}
add_action('wp_login','force_pretty_displaynames',10,2);
저는 (WP 3.4.1을 사용하여) 로그인하는 즉시 표시명을 대체하여 정상적으로 동작합니다.
오래된 질문이지만 제 답변은 다른 사람에게 유용할 수 있습니다.
데이터베이스에서 다음 쿼리를 실행합니다(다른 접두사가 있는 경우 테이블 이름 조정).
UPDATE wp_users SET display_name = CONCAT((SELECT meta_value FROM wp_usermeta WHERE meta_key = 'first_name' AND user_id = ID), ' ', (SELECT meta_value FROM wp_usermeta WHERE meta_key = 'last_name' AND user_id = ID));
WP 3.3.1에서는 동작하지만 이후 버전에서는 동작합니다.
<?php
//Sets the user's display name (always) to first name last name, when it's avail.
add_action ('admin_head','make_display_name_f_name_last_name');
function make_display_name_f_name_last_name(){
$users = get_users(array('fields'=>'all'));
foreach($users as $user){
$user = get_userdata($user->ID);
$display_name = $user->first_name . " " . $user->last_name;
if($display_name!=' ') wp_update_user( array ('ID' => $user->ID, 'display_name' => $display_name) );
else wp_update_user( array ('ID' => $user->ID, 'display_name' => $user->display_login) );
if($user->display_name == '')
wp_update_user( array ('ID' => $user->ID, 'display_name' => $user->display_login) );
}
}
?>
이 코드를 기능에서 사용합니다.php 이 코드는 display_name을 변경하고 first_name과 last_name의 첫 글자로 대체하여 새 사용자 또는 사용자 정보를 업데이트합니다.
//Change the publicly displayed name on comments
add_filter('pre_user_display_name','default_display_name');
function default_display_name($name) {
global $current_user;
get_currentuserinfo();
$lastname=mb_substr($current_user->user_lastname, 0, 1, "UTF-8");
$name = ucfirst($current_user->user_firstname) .' '.ucfirst($lastname). '.';
return $name;
}
빠르고 더러운 해킹은 'wp-includes/user.php' 파일을 편집하는 것입니다.
if ( empty($display_name) )
$display_name = $user_login;
$display_name = apply_filters('pre_user_display_name', $display_name);
이 줄 편집
$display_name = $user_login;
변경 내용:
$display_name = $first_name . ' ' . $last_name;
위의 솔루션은 WordPress 업데이트에서 user.php 파일이 변경되지 않았거나 또는 이러한 기능을 추가할 수 있다고 가정할 때 작동합니다.php
//force display-name of users to Firstname Lastname
add_action('admin_head','force_pretty_displaynames');
function force_pretty_displaynames() {
$current_user = wp_get_current_user();
if ($current_user->display_name != $current_user->first_name." ".$current_user->last_name){
update_user_meta($current_user->ID, 'display_name', $current_user->first_name." ".$current_user->last_name);
}
}
그러나 위의 몇 가지 체크는 사용자가 로그인하고 있는지, 관리자인지, 기여자인지 등을 확인하기 위해 추가할 수 있습니다.
하지만 네가 원하는 걸 해야 해
출처 : http://wordpress.org/support/topic/change-default-display-name-1
마티
언급URL : https://stackoverflow.com/questions/9326315/wordpress-change-default-display-name-publicy-as-for-all-existing-users
'programing' 카테고리의 다른 글
Wordpress에서 Facebook 세션 가져오기 (0) | 2023.03.02 |
---|---|
프로젝터를 실행할 수 없음 - ECONNREFUSED 연결 ECONNREFUSED (0) | 2023.03.02 |
Wordpress cron wp_schedule_single_event – 액션이 항상 작동하지 않음 (0) | 2023.03.02 |
GSON을 사용하여 Android에서 동적 "키" 및 "값"을 가진 JSON 구문 분석 (0) | 2023.03.02 |
Angular는 어떻게 알아?JS를 "갱신"하다 (0) | 2023.03.02 |