Autor Zpráva
Kyoshi
Profil
Ahoj,

má omluva za divný nadpis, ale ono se to může týkat WordPressu (proto ty role). Potřebuji v WP vypsat role jako Administrátor, Moderátor, … Bohužel jsem v Codexu nenašel nic užitečného. Mohu vypsat role číselně (10 = Administrátor atd.)

Takže by mi stačilo každému číslu přiřadit název, proto to nakonec hážu do PHP a ne do WP. Tohle je na mě bohužel zatím moc PHP :).

Takhle vypisuji role v WP:

the_author_meta('user_level', 2); // 2 je ID uživatele


Předem díky

Kyo
Alphard
Profil
Nejjednodušší cesta je sastavit asociativní pole, kde číselná hodnota bude klíč a role uživatele bude budnota pole, pak to vypsat.

$role = array(
  1 => 'admin',
  2 => 'uživatel',
);

echo $role[2];
Kyoshi
Profil
Alphard:

To bych ještě chápal, ale jinak to s tím the_author_meta('user_level', 2); opravdu nedokážu dát dohromady :(.

Přesto díky za radu :)

edit.: mě jde hlavně o to, provázat to s WP, aby při změně role se to projevilo díky této funkci. Proto potřebuji the_author_meta('user_level', 2);. Také je důležité aby to fungovalo s ID uživatelských účtů WP.
Spectator
Profil
Kyoshi:
the_author_meta('user_level', user_id);
vrací nejspíš číslo levelu uživatele (role). Snad jsem pochopil, že nevíš jak vlastně výlsedek použít.
použij to co ti radí Alphard

$role = array(
  1 => 'admin',
  2 => 'uživatel',
  ...
);

echo $role[the_author_meta('user_level', $user_id)]; 
Kyoshi
Profil
Spectator:

To jsem zkoušel jako první, ale vyhazuje to zase číselnou hodnotu:

mám to:
$role = array(
  10 => 'admin',
);
 
echo $role[the_author_meta('user_level', 2)];

To opět vrátí číselnou hodnotu 10, což je lvl administrátora, který má to ID 2.
Spectator
Profil
var_dump(the_author_meta('user_level', 2)); píše co? Za 'admin' smažte čárku, pokud tam dále nic není.
Kyoshi
Profil
vrací: 10NULL

edit.: teď jsem testnul: $user = new WP_User( 2 ); echo $user->roles[0]; a vyhazuje to konečně správně uživatelské role, ale názvy jsou špatně. Respektive, nejsou česky. Například, na roli návštěvníka mi to vyhazuje subscriber. To pole, kde si mohu sám nastavit názvy rolí by bodlo :).
Spectator
Profil
když zadáte pouze toto var_dump(the_author_meta('user_level')); ?
Majkl578
Profil
Spectator:
Za 'admin' smažte čárku, pokud tam dále nic není.
Proč? Ta čárka je tam zcela správně.

[#7] Kyoshi:
A to NULL se bere kde?
Kyoshi
Profil
Spectator:
Poku je tam pouze: var_dump(the_author_meta('user_level'));, tak vyhodí jen NULL.

Majkl578
Kde se bere nemám opravdu tušení. Podle mého posledního komentu (ten edit) by vše mělo fungovat, když použiji funkce z WP.
edit.: Jinak, raději zopakuji, používám WordPress, takže to NULL bude zakopané někde uvnitř. Podle mě tam, kde je seznam těch rolí. Jenže nemám tušení kde to je.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: