Kategoriler
Blog

WordPress Admin Bar yeni bir şey eklemek veya kaldırmak

WordPress Admin Barı komple nasıl kaldırılacağını bir önceki yazımda yazmıştım, aslında her user kendi profilinden bu ayarı yapabiliyor fakat çok kullanıcılı sitelerde profilinde diğer alanları doldurmaktan sıkılan kullanıcıların buna dikkat eden ve kullananın çok fazla olacağını düşünmüyorum.

WordPress Admin Bar yeni bir şey eklemek veya kaldırmak


Bu aşağıdaki kod örneği ile WordPress 3.1 ile gelen yeni WordPress admin bara yeni şeyler eklemek veya varsayılan olarak görüntülenen istediğiniz elemanları kaldırmayı yapabilirsiniz, bu sayede özel kendimize ait WordPress admin bandımız olabilir. Kodu temanın functions.php dosyasına yazacaksınız.

function benim_admin_bar() {
global $wp_admin_bar;

//kaldırmak istedikleriniz
$wp_admin_bar->remove_menu('my-account-with-avatar');
$wp_admin_bar->remove_menu('new-content');

//eklemek istedikleriniz
$wp_admin_bar->add_menu( array(
'id' => 'genel_ayarlar', //css için id
'title' => 'Ayarlar', // görünecek metin
'href' => admin_url( 'options-general.php') //gidecek url
 ) );
$wp_admin_bar->add_menu( array(
'parent' => 'new-content', //hangi menünün altında 
'id' => 'new_media', //css için id
'title' => __('Media'), //görünecek metin
'href' => admin_url( 'media-new.php') //gidecek url
 ) );
}
add_action( 'wp_before_admin_bar_render', 
'benim_admin_bar' );

İsterseniz yukarıdaki kodu biraz daha özelleştirerek kullanıcı tipine göre farklı menü gösterebiliriz. Bunun için de user role kullanacağız, WordPress’de 0 dan 10 a kadar user role rakamı vardır bunlar küçükten büyüğe sade üye den yöneticiye kadar gider.
Benim yapacağım örnek 6 editör seviyesinden aşağı ise kullanıcı benim menümü görsün olacak, işte böyle;

function benim_admin_bar_kullanicilar() {
get_currentuserinfo() ;
global $user_level;
	if ($user_level < 3) {
global $wp_admin_bar;

//kaldırmak istedikleriniz
$wp_admin_bar->remove_menu('my-account-with-avatar');
$wp_admin_bar->remove_menu('comments');
$wp_admin_bar->remove_menu('new-content');

//eklemek istedikleriniz
$wp_admin_bar->add_menu( array(
'id' => 'menu_iletisim', //css için id
'title' => 'İletişim', //görünecek metin
'href' => 'https://wolkanca.com/iletisim' //gidecek url
 ) );
 }
}
add_action( 'wp_before_admin_bar_render', 'benim_admin_bar_kullanicilar' );

Hadi size haftasonu olduğu için ve de Mert isimli arkadaş beni aramayı unuttuğu için bir WordPress ipucu daha vereyim. Kullanıcıların profillerindeki alanları çok basit ekleyip çıkarabilirsiniz, örneğin profilde hiç bir işe yaramayan aim, jabber ve yim alanlarını kaldırıp onun yerine Facebook, Twitter ve LinkedIn alanları ekleyelim işte böyle;

function extra_iletisim_bilgileri($contactmethods) {
//kaldırmak istedikleriniz
    unset($contactmethods['aim']);
    unset($contactmethods['yim']);
    unset($contactmethods['jabber']);
//eklemek istedikleriniz
    $contactmethods['facebook'] = 'Facebook';
    $contactmethods['twitter'] = 'Twitter';
    $contactmethods['linkedin'] = 'LinkedIn';

    return $contactmethods;
}
add_filter('user_contactmethods', 
'extra_iletisim_bilgileri');

WordPress ile hayat çok güzel 😛

Kaynaklar:
http://codex.wordpress.org/Function_Reference/show_admin_bar
http://codex.wordpress.org/Plugin_API/Filter_Reference/show_admin_bar
http://justintadlock.com/archives/2011/02/02/creating-a-custom-functions-plugin-for-end-users
http://www.iwebsource.net/blog/learning-center/wordpress-3-1-admin-bar-modification.html

Fotoğraf şuraya öneridir.
eski ama çok güzel bir şarkı 🙂