Aqui segue um pequeno tutorial de personalização a wp_admin_bar disponivel a partir da versao 3.1 do wordpress
adicione esse codigo no final do arquivo functions.php de seu tema e modifique conforme sua necessidade
function meu_menu(){
global $wp_admin_bar;
//aqui crio o primeiro menu
//coloco dentro de um array id, title, href, meta
//id fica como referencia do link no caso de ter outros sublinks
//title é o nome do link
//href o endereço para onde o link aponta
//meta tem o atributo title do link que da um hint ao passar o mouse
$wp_admin_bar-add_menu( array(
'id' => 'twitter-link',
'title' => 'Twitter',
'href' => 'http://www.twitter.com/maluco456',
'meta' => array( 'class'='novo-link', 'title'='Twitter do alexndre' )
) );
//aqui crio um sublink em relação ao twitter
$wp_admin_bar-add_menu( array(
'parent' => 'twitter-link'
'id' => 'twitter-link',
'title' => 'Twitter',
'href' => 'http://www.twitter.com/maluco456',
'meta' => array( 'class'='novo-link', 'title'='Twitter do alexndre' )
) );
//aqui crio um segundo link
$wp_admin_bar-add_menu( array(
'id' => 'atalho-editor',
'title' => 'Editor',
'href' => 'http://duvidaswordpress.blogspot.com',
'parent' => 'appearance'
) );
$wp_admin_bar-add_menu( array(
'id' => 'atalho-editor',
'title' => '<img src="endereço/img/imagem.jpg" alt="texto alternativo da imagem"',
'href' => 'http://duvidaswordpress.blogspot.com'
) );
}
add_action( 'admin_bar_menu', 'meu_menu', 90 );
Neste post mostro como consegui logar simultaneamente no moodle e no wordpress.
as base de dados não estão interligadas, ainda nao consegui chegar nessa parte, os usuarios tem que estar presente nas duas databases, com login e senhas iguais.
é meio amador mas da pra quebrar o galho ate conseguir interligar os dois de uma maneira melhor...
segue codigo php abaixo
<?php
//acessando a Base de dados pelo wp-config
include_once("../wp-config.php");
/*
includes para classes da validação no wordpress com o class-phpass.php
*/
include_once("../wp-includes/class-phpass.php");
include_once("../wp-includes/pluggable.php");
if(!$_POST)
{
//crio o formulario
?>
<form method="post" action="" name="login">
<div id='content_login'>
<h1>Login</h1>
<table>
<tr>
<td>Username</td>
<td><input type="text" name="username" value="" /></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="password" value="" /></td>
</tr>
<tr>
<td><input type="submit" name="login" value="Login" /></td>
</tr>
</table>
</div>
</form>
<?php
}
else {
//recebo as variaveis do formulario pelo metodo post ao clicar em login
$username = mysql_escape_string($_POST['username']);
$password = mysql_escape_string($_POST['password']);
// seleciono os dados da tabela de usuarios no meu caso é wp-users, mas dependendo da instalação isso pode mudar
// esse é o motivo de usar a variavel $table_prefix que vem do wp-config
$query = mysql_query("SELECT * FROM ".$table_prefix."users WHERE user_login = '$username'");
//executo a query
$row = mysql_fetch_array($query);
//crio o novo objeto $wp_hasher
$wp_hasher = new PasswordHash(8, TRUE);
//puxo os dados da tabela com a codificaçao propria do wordpress
$password_hashed = $row['user_pass'];
//puxo o id do usuario
$user_id = $row['ID'];
/*
abaixo vou checar se o password é igual em md5 ou na classe PasswordHash
*/
if($wp_hasher->CheckPassword($password, $password_hashed)
|| $password_hashed == md5($password)) {
//se der tudo certo nas verificações acima inicio a sessao colocando o logged_in
$_SESSION["logged_in"] = true;
//gravo os cookies de autenticaçao
wp_set_auth_cookie( $user_id, $remember = true, $secure ='' );
//mensagem dizendo que deu tudo certo
echo 'Login ok';
//daqui para baixo ainda ta em teste para logar simultaneo no moodle.
//te me dando alguns problemas pra integrar esses dois....
?>
<html>
<head>
<script type="text/javascript">
//função de envio de formulario com JS
//com direcionamento apos o envio da função
function submitform()
{
document.forms["moodle"].submit();
//aqui vc coloca a url do seu site
location.href="http://site.com.br";
}
</script>
</head>
<!-- aqui na tagbody eu digo que quando a pagina carregar ela vai rodar a função js de envio dos dados do formulario -->
<body onload="submitform();">
<!-- vc tem que localizar onde esta a pasta login dentro do diretorio onde o moodle esta instalado -->
<form name="moodle" action="../uni/login/index.php" method="post">
<input type="hidden" name="username" value="<?php echo $username; ?>"/>
<input type="hidden" name="password" value="<?php echo $password; ?>"/>
</form>
</body>
</html>
<?php
//caso de tudo certo daqui para baixo nao aparece, caso contrario o formulario aparece novamentte para uma nova tentativa de login
}
else {
?>
<form method="post" action="">
<div id='content_login'>
<h1 class='red'>Dados do usuario/password incorretos</h1>
<table>
<tr>
<td>Username</td>
<td><input type="text" name="username" value="" /></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="password" value="" /></td>
</tr>
<tr>
<td><input type="submit" name="login" value="Login" /></td>
</tr>
</table>
</div>
</form>
<?php
}
}
?>