Home Wordpress & Joomla WordPress Kategorilerini Açılır Menü Yapma
WordPress Kategorilerini Açılır Menü Yapma

WordPress Kategorilerini Açılır Menü Yapma

165
14

Merhaba arkadaşlar, internet ortamında bulduğum ve bazı arkadaşların işine yarayacağını umduğum bir çalışmayı sizlerle paylaşmak istiyorum. WordPress Kategorisini Açılır Menü yapmak isteyenler bu makaledeki uygulamayı yaptıklarında istediklerini elde edeceklerdir. Şimdiden Kolay gelsin.

 Attıktan sonra eklentiler sayfasından aktif ediyorsunuz. İşte bu kadar.

<?php
/*
Plugin Name: Açılır Kategori
*/
if(is_admin()){ 
    add_action('admin_menu', function(){
        remove_meta_box('categorydiv', 'post', 'normal'); 
    });
    add_action('add_meta_boxes', function(){
        add_meta_box(
            'kategoriler_acilir_menu',
            'Kategori',
            'kategoriler_acilir_menu_cb',
            'post'
        );
    }); 
    function kategoriler_acilir_menu_cb( $post ) {
        wp_nonce_field('kategori_meta_box', 'kategori_meta_box_nonce');
        $kategori = get_the_category($post->ID);
        $kategoriler = get_categories(array( 'hide_empty' => false ));
        $kategori_output = null;
        foreach ($kategoriler as $kat) {
            $kategori_output .= "<option value='{$kat->cat_ID}' ".($kat->cat_ID == $kategori[0]->cat_ID ? 'selected' : null).">{$kat->cat_name}</option>";
        }
        echo '<label for="kategori">Kategori</label><br /><select name="kategori" id="kategori">'.$kategori_output.'</select>';
    
    add_action('save_post', function($post_id){
        if ( ! isset( $_POST['kategori_meta_box_nonce'] ) ) {
            return;
        }
        if ( ! wp_verify_nonce( $_POST['kategori_meta_box_nonce'], 'kategori_meta_box' ) ) {
            return;
        }
        if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
            return;
        }
        if ( ! current_user_can( 'edit_post', $post_id ) ) {
            return;
        }
        if ( ! isset( $_POST['kategori'] ) ) {
            return;
        }
        wp_set_post_categories($post_id, array( $_POST['kategori'] ), false);
    }); 
}

Yukarıdaki işlemde hata oluşursa, aşağıdaki işlemi yapabilirsiniz. Bu sefer function.php dosyasını eklemeniz gerekmektedir.

if(is_admin()){ 
    add_action('admin_menu', function(){
        remove_meta_box('categorydiv', 'post', 'normal'); 
    });
    add_action('add_meta_boxes', function(){
        add_meta_box(
            'kategoriler_acilir_menu',
            'Kategori',
            'kategoriler_acilir_menu_cb',
            'post'
        );
    }); 
    function kategoriler_acilir_menu_cb( $post ) {
        wp_nonce_field('kategori_meta_box', 'kategori_meta_box_nonce');
        $kategori = get_the_category($post->ID);
        $kategoriler = get_categories(array( 'hide_empty' => false ));
        $kategori_output = null;
        foreach ($kategoriler as $kat) {
            $kategori_output .= "<option value='{$kat->cat_ID}' ".($kat->cat_ID == $kategori[0]->cat_ID ? 'selected' : null).">{$kat->cat_name}</option>";
        }
        echo '<label for="kategori">Kategori</label><br /><select name="kategori" id="kategori">'.$kategori_output.'</select>';
    
    add_action('save_post', function($post_id){
        if ( ! isset( $_POST['kategori_meta_box_nonce'] ) ) {
            return;
        }
        if ( ! wp_verify_nonce( $_POST['kategori_meta_box_nonce'], 'kategori_meta_box' ) ) {
            return;
        }
        if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
            return;
        }
        if ( ! current_user_can( 'edit_post', $post_id ) ) {
            return;
        }
        if ( ! isset( $_POST['kategori'] ) ) {
            return;
        }
        wp_set_post_categories($post_id, array( $_POST['kategori'] ), false);
    }); 
}

(165)

omerbozalan 1981 doğumluyum. Üniversite eğitimimi, Sakarya Ünv. Elektronik ve Bilgisayar Öğretmenliğini bitirerek tamamladım. Ayrıca C Sınıfı İş Sağlığı ve Güvenliği Uzmanıyım. 2014 Nisan ayında Adobe Dreamweaver CS6 Kitabımı yayınlayarak tüm bildiklerimi sizlerle paylaşmak istedim. Kendimi Web Tasarım, Grafik Tasarım, Donanım konusunda hâlâ geliştirmekteyim.

Yorum(14)

  1. wordpress-da menu limiti varmi? manin menu-ye 87 menu yaptim daha fazla yapmak istediyimde oge eklenmiyor menu kayb oluyor nasil duzelte bilirim hocam?

    1. Yani temaya göre değişebilir, menu ekleme işlemi yaptığında en son eklediğin menu tasarımın altına kalabilir. Bakmak lazım. herhangi bir sınırlama olduğunu düşünmüyorum

  2. Hocam temadan degil temalari denedim ayni sorun var 87 menum var yenisi eliyorum menuyu kaydet dediyimde yeni eklediyim menu kalmiyor menu sayi 87 bu sayiyi azaltdimda mesela 85 menum oldu zaman 3 menu daha ekliye biliyorum fakat 87 menuden sonra eklenmiyor

  3. merhaba hocam bir şey sormak istiyorum ben sizin örnek tasarımlarınızı kendi siteme koymak istiyorum ama yapamıyorum onun için ne yapmam gerekir index mi düzenlenecek veya sitede mi bi sorun var yardım için bi video hazırlarsanız sevinirim.

    1. İbrahim kardeşim, tabiki sayfaları düzenlemen gerekiyor. Ama şimdi öyle genel bir konudan bahsettin ki.. Sen ne biliyorsun onu bilmiyorum. Neyi nerede kullanmak istiyorsun onuda bilmiyorum. Yani soru sorduğunuzda biraz ayrıntılı yazsanız, daha iyi cevap vereceğim.

      1. sizin bütün derslerinizi izledim ve güzel bi şekilde hepsini ezberledim sayılır ben sitenin tasarımını tamamen yapabiliyorm ama tek sıkıntım kendi web siteme attığımda web sitemin yaptığım tasarım haline gelmemesi yani sizin hatasız yaptığınız tasarımların hangi kodlarını düzeltirsem kendi web sitem o hali alır bunu öğrenmek istiyorum.

  4. Ömer bey benim anlatmak istediğim sizin örnek sitenizi kendi web sitem yapmak istiyorum link falan herşeyim var sunucumda var ama tek sorunum sizin örnek web tasarımını siteme attığımda karşımda index of yazısının çıkması yada hiç açılmaması oluyor. Yani bu sorunu nasıl çözebilirim.

    1. Arkadaşım, oluşturduğunuz sitenin anasayfasının adı index.html olması gereklidir. Bu yüzden sunucunu o sayfayı bulamadığından index of yazısı çıkmıştır. veya bir diğer ihtimal bilgisayarınızdaki hazırlamış olduğunuz klasörü değilde içindeki dosyaları atmalısınız. Sitemizin arama bölümünde FTP diye aratırsanız videolu anlatımı bulabilirsiniz.

      1. Bu bana çok yardımcı oldu teşekkür ederim. Son bir sorum olucak peki bu web sitesindeki dosyaları silip sadece kendi dosyalarımızı atsak bi sorun yaşarmıyız.

  5. Dosyayı indirip eklentilerden aktif yaptım. Herhangi bir değişiklik olmadı. Alttaki kodları functions dosyasının en sonuna ekledim, onu da kabul etmedi. Yapamadım açıkçası.

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.