Как я могу отобразить переведенное имя автора в WordPress - PullRequest
0 голосов
/ 11 января 2020

Использование этой функции в функциях. php работает, но отображает имя слага, например: Администратор

function get_author_role() {
    $userauthorid = get_the_author_meta( 'id' );
    $user_info = get_userdata($userauthorid );
    echo $user_info->roles['name']; 
}

Я хочу, чтобы оно отображало переведенное имя роли.

1 Ответ

0 голосов
/ 11 января 2020

ОБНОВЛЕНИЕ translate_user_role(): К сожалению, похоже, что эта функция не предназначалась для выполнения в интерфейсе Wordpress. Я подумал, , что проблема окончена!

Существует два решения этой проблемы:

  • Решение 1. Загрузите текстовый домен администрирования 'в внешний интерфейс:
add_action( 'init', 'load_admin_textdomain_in_front' )    function load_admin_textdomain_in_front() {
           if ( ! is_admin() ) {
               load_textdomain( 'default', WP_LANG_DIR . '/admin-' . get_locale() . '.mo' );
           }    }
  • Решение 2:

Роли пользователей - это всего лишь несколько слов, поэтому я просто сделал эту функцию, чтобы выбрать перевод имени роли из массива переводов. .

function get_author_info() {
      $post_data = get_post_data(); 
      $author_data = get_userdata($post_data->post_author);  
      $author_roles = $author_data->roles;
        $role = $author_data->roles[0];
        $rolesfr = array('editor'=>'Éditeur','administrator'=>'Administrateur','author'=>'Auteur','contributor'=>'Contributeur','subscriber'=>'Abonné');     
        echo $rolesfr[$role] ;
}

На многоязычном веб-сайте вы можете добавить аргумент в эту функцию для переключения на активный язык. Или используйте первое решение.

...