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 görünecek
'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' => 'http://wolkanca.com.tr/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.
Scatman remix eski ama çok güzel bir şarkı 🙂
İlgili

Yazar: Volkan Yılmaz

Digital Marketing & Growth Hacking #SEO #wolkanca #cycling merhaba@volkanyilmaz.com.tr

“WordPress Admin Bar yeni bir şey eklemek veya kaldırmak” için 4 yorum

  1. merhaba,
    http://rasitozkardes.k12.tr/ adlı okul sitesinin amatör uğraşanlarıyız. admin bar da onay bekleyen yazıları nasıl gösterebiliriz? yazınızdan oldukça faydalansak ta çözüm üretemedik.
    yorumlarda, bekleyen yorumlar nasıl gösteriliyorsa, üyelerimizin yayınlamak üzere inceleme bekleyen yazılarını da bu şekilde göstermek istiyoruz.
    yardımcı olabilirseniz çok memnun kalacağız, şimdiden teşekkür ederiz.

    iyi çalışmalar

  2. aşağıdaki fonksiyon admin panelinde soldaki menüde bekleyen yazıları gösteriyor:

    if(!class_exists('kwm_pending_posts_indicator')) {
    class kwm_pending_posts_indicator {
    function kwm_pending_posts_indicator() { }
    function show_pending_number($menu) {
    $num_posts = wp_count_posts( 'post', 'readable' );
    $status = "pending";
    $pending_count = 0;
    if ( !empty($num_posts->$status) )
    $pending_count = $num_posts->$status;
    // use 'plugins' classes for now. may add specific ones to this later.
    $menu[5] = array( sprintf( __('bekleyen %s'), "<span class='update-plugins
    count-$pending_count'><span class='plugin-count'>" .
    number_format_i18n($pending_count) . "</span></span>" ), 'edit_posts',
    'edit.php', '', 'wp-menu-open menu-top', 'menu-posts', 'div' );

    return $menu;
    }
    }
    }
    add_filter('add_menu_classes', array('kwm_pending_posts_indicator',
    'show_pending_number'), 8);

    admin barda göstermesi için bilmiyorum yukarıdaki fonksiyonu geliştirip eklemek lazım onu da yapabilirsiniz belki ben şimdi hemen yapamadım.

    yukarıdaki fonksiyonu temanın function.php isimli dosyasınıda müsait bir yere yazacaksınız.

    kolay gelsin.

  3. teşekkür ediyorum, kodlardan yola çıkarak pending posts indicator eklentisine ulaştım.
    verdiğiniz kodlarla veya eklentinin kodlarından yola çıkarak anasayfa admin barda inceleme bekleyen yazıları nasıl gösterebilirim? şu an yönetim panelinde görünüyor.