• 23-11-2024, 16:02:25
    #1
    wordpres için emlak özellikleri plugin. Plugin eklediğiniz içeriklerin en altına . eklenti sada bir kodlama ile yazılmıştır. geliştirmeye açıktır herkes dilediği gibi kullanabilir

    Metrekare:
    Oda Sayısı:
    Fiyat:

    Bilgilerini Girmenzi sağlar. girilmeyen bilgiler gösterilmez
    Fiyat 3 farlı para birimi olarak düzenenmiştir tl dolar ve euro

    Demo adres: serik emlak

    indir

    Kodu bu şekildedir

    <?php
    /*
    Plugin Name: Emlak Özellikleri
    Description: Yazılara emlak özellikleri (metrekare, oda sayısı, fiyat ve para birimi) ekleyen bir eklenti.
    Version: 1.3
    Author: [Serik Emlak]
    */
    
    // Meta box ekleme
    function emlak_ozellikleri_metabox_ekle() {
        add_meta_box(
            'emlak_ozellikleri',
            'Emlak Özellikleri',
            'emlak_ozellikleri_metabox_gorunum',
            'post',
            'normal',
            'high'
        );
    }
    add_action('add_meta_boxes', 'emlak_ozellikleri_metabox_ekle');
    
    // Meta box görünümü
    function emlak_ozellikleri_metabox_gorunum($post) {
        $metrekare = get_post_meta($post->ID, '_emlak_metrekare', true);
        $oda_sayisi = get_post_meta($post->ID, '_emlak_oda_sayisi', true);
        $fiyat = get_post_meta($post->ID, '_emlak_fiyat', true);
        $para_birimi = get_post_meta($post->ID, '_emlak_para_birimi', true);
    
        if (!$para_birimi) {
            $para_birimi = 'TL'; // Varsayılan para birimi
        }
    
        echo '<label for="emlak_metrekare">Metrekare:</label>';
        echo '<input type="text" id="emlak_metrekare" name="emlak_metrekare" value="' . esc_attr($metrekare) . '" />';
        echo '<br><br>';
        echo '<label for="emlak_oda_sayisi">Oda Sayısı:</label>';
        echo '<input type="text" id="emlak_oda_sayisi" name="emlak_oda_sayisi" value="' . esc_attr($oda_sayisi) . '" />';
        echo '<br><br>';
        echo '<label for="emlak_fiyat">Fiyat:</label>';
        echo '<input type="text" id="emlak_fiyat" name="emlak_fiyat" value="' . esc_attr($fiyat) . '" />';
        echo '<br><br>';
        echo '<label for="emlak_para_birimi">Para Birimi:</label>';
        echo '<select id="emlak_para_birimi" name="emlak_para_birimi">';
        echo '<option value="TL" ' . selected($para_birimi, 'TL', false) . '>TL</option>';
        echo '<option value="USD" ' . selected($para_birimi, 'USD', false) . '>USD</option>';
        echo '<option value="EUR" ' . selected($para_birimi, 'EUR', false) . '>EUR</option>';
        echo '</select>';
    }
    
    // Meta box verilerini kaydetme
    function emlak_ozellikleri_veri_kaydet($post_id) {
        if (array_key_exists('emlak_metrekare', $_POST)) {
            update_post_meta($post_id, '_emlak_metrekare', sanitize_text_field($_POST['emlak_metrekare']));
        }
        if (array_key_exists('emlak_oda_sayisi', $_POST)) {
            update_post_meta($post_id, '_emlak_oda_sayisi', sanitize_text_field($_POST['emlak_oda_sayisi']));
        }
        if (array_key_exists('emlak_fiyat', $_POST)) {
            update_post_meta($post_id, '_emlak_fiyat', sanitize_text_field($_POST['emlak_fiyat']));
        }
        if (array_key_exists('emlak_para_birimi', $_POST)) {
            update_post_meta($post_id, '_emlak_para_birimi', sanitize_text_field($_POST['emlak_para_birimi']));
        }
    }
    add_action('save_post', 'emlak_ozellikleri_veri_kaydet');
    
    // Yazı içeriğine özellikleri ekleme
    function emlak_ozellikleri_goster($content) {
        if (is_single()) {
            $metrekare = get_post_meta(get_the_ID(), '_emlak_metrekare', true);
            $oda_sayisi = get_post_meta(get_the_ID(), '_emlak_oda_sayisi', true);
            $fiyat = get_post_meta(get_the_ID(), '_emlak_fiyat', true);
            $para_birimi = get_post_meta(get_the_ID(), '_emlak_para_birimi', true);
    
            // Özellikler sadece doluysa gösterilecek
            $ozellikler = '';
    
            if ($metrekare || $oda_sayisi || $fiyat) {
                $ozellikler .= '<div class="emlak-ozellikleri">';
                if ($metrekare) {
                    $ozellikler .= '<div class="emlak-ozellik"><strong>Metrekare:</strong> ' . esc_html($metrekare) . '</div>';
                }
                if ($oda_sayisi) {
                    $ozellikler .= '<div class="emlak-ozellik"><strong>Oda Sayısı:</strong> ' . esc_html($oda_sayisi) . '</div>';
                }
                if ($fiyat) {
                    $ozellikler .= '<div class="emlak-ozellik"><strong>Fiyat:</strong> ' . esc_html($fiyat) . ' ' . esc_html($para_birimi) . '</div>';
                }
                $ozellikler .= '</div>';
            }
    
            $content .= $ozellikler;
        }
        return $content;
    }
    add_filter('the_content', 'emlak_ozellikleri_goster');
    
    // Stil eklemek için gerekli CSS
    function emlak_ozellikleri_stil() {
        echo '<style>
            .emlak-ozellikleri {
                display: flex;
                justify-content: space-between;
                align-items: center;
                margin-top: 15px;
                padding: 10px;
                border-top: 1px solid #ddd;
                font-size: 14px;
            }
            .emlak-ozellikleri .emlak-ozellik {
                flex: 1;
                text-align: center;
            }
            .emlak-ozellik strong {
                display: block;
                font-weight: bold;
                margin-bottom: 5px;
            }
        </style>';
    }
    add_action('wp_head', 'emlak_ozellikleri_stil');
  • 07-12-2024, 18:17:32
    #2
    V2 versiyonunu paylaşıma sunabilirim talep olur sa