我成功地使用了这个优秀的贡献者功能,在我的网站上用gravatar照片生成了一个用户列表。。直到客户决定他们不想使用gravatar,而宁愿使用自己网站上托管的图像。结果还表明,除了作者之外,他们在网站上还有许多其他角色,查询中的“WHERE NOT”将不再足够。
有人能帮我分两部分吗。。调整此功能以限制为“作者”角色,并使用用户的名字&;last name自定义图像链接,以便我可以从/上传他们的图像?这将在循环之外使用。
我目前在循环中使用$curauth将作者的名字和姓氏附加到图像链接中,效果很好,图像名为JohnSmith。上传文件夹中的jpg。
我的SQL和PHP很弱,但我在想:
select id, firstName, lastName from users WHERE Role=Author;
然后,更换
echo get_avatar($author->ID);
使用
echo \'<img src=/uploads/author-\' . $author->firstName,lastName; . \'.jpg />;
我假设将有一个join来获取用户角色,但我不太确定该字段的名称。。下面是参与者功能。如果您有任何帮助,我们将不胜感激!
function contributors() {
global $wpdb;
$authors = $wpdb->get_results("SELECT ID, user_nicename from $wpdb->users WHERE NOT ID = \'1\' ORDER BY display_name");
foreach($authors as $author) {
echo "<li>";
echo "<a href=\\"".get_bloginfo(\'url\')."/?author=";
echo $author->ID;
echo "\\">";
echo get_avatar($author->ID);
echo "</a>";
echo \'<div>\';
echo "<a href=\\"".get_bloginfo(\'url\')."/?author=";
echo $author->ID;
echo "\\">";
the_author_meta(\'display_name\', $author->ID);
echo "</a>";
echo "</div>";
echo "</li>";
}
}
SO网友:Ben Racicot
是否加入以获取用户角色?我不这么认为。
既然您已经开始使用自己的PHP(从您提供的示例中),那么就要对WordPress Codex中的内置函数进行更多的研究。
就创建新角色而言,下面的代码复制管理员角色,删除新自定义角色中不需要的任何功能,最后命名新角色:
$newrole = get_role(\'administrator\'); //choice of Administrator, Editor, Author,
Contributor, Subscriber - http://codex.wordpress.org/Roles_and_Capabilities
$caps = $newrole->capabilities;
// Unset the capabilities you don’t want in the new role.
//unset($caps[\'activate_plugins\']);
//unset($caps[\'edit_plugins\']);
//unset($caps[\'update_plugins\']);
//unset($caps[\'delete_plugins\']);
//unset($caps[\'install_plugins\']);
//unset($caps[\'delete_users\']);
//unset($caps[\'import\']);
//unset($caps[\'create_users\']);
unset($caps[\'edit_users\']);
unset($caps[\'edit_dashboard\']);
unset($caps[\'update_core\']);
unset($caps[\'switch_themes\']);
// unset($caps[\'edit_theme_options\']);
// Add the new role.
add_role(\'Master Editor\', \'Master Editor\', $caps); // your new role "Master Editor"
或向现有角色添加功能。
function add_cap_to_editor()
{
$role = get_role( \'editor\' ); // pick up role to edit the editor role
$role->add_cap( \'edit_users\' );
$role->add_cap( \'create_users\' );
}
add_action( \'admin_init\', \'add_cap_to_editor\');