• 04-11-2025, 14:02:46
    #1
    Selamlar yapay zeka ile eklenti yaptım eklentiyi kurup etkinleştiriyorsunuz

    çekim ayarlarından rss adresi ekliyorsunuz

    gerekli ayarlamaları yapıyorsunuz


    şimdi çek derseniz 20 adet çekti taslak olarak bıraktı









    çekilen haber makalesi örnek içeriği




    bu eklenti geliştirilebilir daha iyi hale getirilebilir

    <?php
    /**
     * Plugin Name:       Gelişmiş Haber Çekici
     * Description:       RSS beslemelerinden haberleri çeker, otomatik olarak taslak yazılar olarak kaydeder.
     * Version:           2.0
     * Author:            Yapay Zeka Asistanı
     * Author URI:        https://ornek.com
     * License:           GPL v2 or later
     * License URI:       https://www.gnu.org/licenses/gpl-2.0.html
     * Text Domain:       gelismis-haber-cekici
     */
    
    // Güvenlik kontrolü
    if (!defined('ABSPATH')) {
        exit;
    }
    
    // --- 1. AKTİVASYON VE DEAKTİVASYON KANCALARI ---
    
    // Eklenti aktif olduğunda zamanlanmış görevi oluştur
    register_activation_hook(__FILE__, 'ghc_activate');
    function ghc_activate() {
        // Varsayılan ayarları oluştur
        $default_options = [
            'rss_url' => '',
            'author_id' => get_current_user_id(),
            'category_id' => 1,
            'schedule' => 'hourly',
        ];
        add_option('ghc_settings', $default_options);
    
        // Zamanlanmış görevi (WP-Cron) ayarla
        if (!wp_next_scheduled('ghc_cron_event')) {
            wp_schedule_event(time(), 'hourly', 'ghc_cron_event');
        }
    }
    
    // Eklenti deaktif olduğunda zamanlanmış görevi temizle
    register_deactivation_hook(__FILE__, 'ghc_deactivate');
    function ghc_deactivate() {
        wp_clear_scheduled_hook('ghc_cron_event');
    }
    
    // --- 2. ZAMANLANMIŞ GÖREVİN ÇALIŞTIRILMASI ---
    
    add_action('ghc_cron_event', 'ghc_proceed_import');
    
    // --- 3. ÇEKİM İŞLEMLERİNİ YAPAN ANA FONKSİYON ---
    
    function ghc_proceed_import() {
        $options = get_option('ghc_settings');
        $rss_url = !empty($options['rss_url']) ? esc_url_raw($options['rss_url']) : null;
    
        if (!$rss_url) {
            return; // RSS URL boşsa işlemi durdur.
        }
    
        $rss = fetch_feed($rss_url);
    
        if (is_wp_error($rss)) {
            error_log('Gelişmiş Haber Çekici Hatası: ' . $rss->get_error_message());
            return;
        }
    
        $maxitems = $rss->get_item_quantity(10); // Bir seferde en fazla 10 haber çek
        $rss_items = $rss->get_items(0, $maxitems);
        $author_id = !empty($options['author_id']) ? intval($options['author_id']) : 1;
        $category_id = !empty($options['category_id']) ? intval($options['category_id']) : 1;
    
        foreach ($rss_items as $item) {
            $permalink = $item->get_permalink();
    
            // TEKRAR ENGELLEME: Bu link ile daha önce yazı eklenmiş mi kontrol et
            if (get_posts(['meta_key' => '_ghc_source_url', 'meta_value' => $permalink])) {
                continue; // Eğer eklenmişse bu haberi atla
            }
    
            $post_data = [
                'post_title'   => wp_strip_all_tags($item->get_title()),
                'post_content' => $item->get_description() . '<br><br><a href="' . esc_url($permalink) . '" target="_blank">Kaynaktan Devamını Oku</a>',
                'post_status'  => 'draft',
                'post_author'  => $author_id,
                'post_category' => [$category_id],
                'post_type'    => 'post',
            ];
    
            $post_id = wp_insert_post($post_data);
    
            // Yazı başarıyla oluşturulursa kaynak linkini meta olarak kaydet
            if (!is_wp_error($post_id)) {
                update_post_meta($post_id, '_ghc_source_url', $permalink);
            }
        }
    }
    
    // --- 4. AYARLAR SAYFASI ---
    
    add_action('admin_menu', 'ghc_add_admin_menu');
    add_action('admin_init', 'ghc_settings_init');
    
    function ghc_add_admin_menu() {
        add_options_page(
            'Gelişmiş Haber Çekici Ayarları',
            'Gelişmiş Haber Çekici',
            'manage_options',
            'gelismis-haber-cekici',
            'ghc_options_page_html'
        );
    }
    
    function ghc_settings_init() {
        register_setting('ghc_settings_group', 'ghc_settings');
    
        add_settings_section(
            'ghc_settings_section',
            'Çekim Ayarları',
            null,
            'gelismis-haber-cekici'
        );
    
        add_settings_field('ghc_rss_url', 'RSS Besleme Adresi', 'ghc_rss_url_render', 'gelismis-haber-cekici', 'ghc_settings_section');
        add_settings_field('ghc_author_id', 'Yazar', 'ghc_author_id_render', 'gelismis-haber-cekici', 'ghc_settings_section');
        add_settings_field('ghc_category_id', 'Kategori', 'ghc_category_id_render', 'gelismis-haber-cekici', 'ghc_settings_section');
        add_settings_field('ghc_schedule', 'Çekim Sıklığı', 'ghc_schedule_render', 'gelismis-haber-cekici', 'ghc_settings_section');
    }
    
    // Ayarlar alanlarını render eden fonksiyonlar
    function ghc_rss_url_render() {
        $options = get_option('ghc_settings');
        echo '<input type="url" name="ghc_settings[rss_url]" value="' . esc_attr($options['rss_url']) . '" size="60" placeholder="https://www.ornek.com/rss.xml" />';
    }
    
    function ghc_author_id_render() {
        $options = get_option('ghc_settings');
        wp_dropdown_users([
            'name' => 'ghc_settings[author_id]',
            'selected' => $options['author_id'],
            'show_option_none' => 'Site Yöneticisi'
        ]);
    }
    
    function ghc_category_id_render() {
        $options = get_option('ghc_settings');
        wp_dropdown_categories([
            'name' => 'ghc_settings[category_id]',
            'selected' => $options['category_id'],
            'show_option_none' => 'Genel',
            'hide_empty' => 0,
        ]);
    }
    
    function ghc_schedule_render() {
        $options = get_option('ghc_settings');
        $schedules = wp_get_schedules();
        echo '<select name="ghc_settings[schedule]">';
        foreach ($schedules as $key => $schedule) {
            echo '<option value="' . esc_attr($key) . '" ' . selected($options['schedule'], $key, false) . '>' . esc_html($schedule['display']) . '</option>';
        }
        echo '</select>';
    }
    
    function ghc_options_page_html() {
        // Manuel çekim işlemini burada handle et
        if (isset($_POST['ghc_manual_import']) && check_admin_referer('ghc_manual_import_nonce')) {
            ghc_proceed_import();
            echo '<div class="notice notice-success is-dismissible"><p>Manuel çekim işlemi başlatıldı. Oluşturulan taslakları <a href="/wp-admin/edit.php?post_status=draft&post_type=post">buradan</a> görebilirsiniz.</p></div>';
        }
        
        // Ayarlar güncellendiğinde cron job'u yeniden ayarla
        if (isset($_GET['settings-updated']) && $_GET['settings-updated'] == 'true') {
            $options = get_option('ghc_settings');
            wp_clear_scheduled_hook('ghc_cron_event');
            wp_schedule_event(time(), $options['schedule'], 'ghc_cron_event');
        }
    
        ?>
        <div class="wrap">
            <h1><?php echo esc_html(get_admin_page_title()); ?></h1>
            <form action="options.php" method="post">
                <?php
                settings_fields('ghc_settings_group');
                do_settings_sections('gelismis-haber-cekici');
                submit_button('Ayarları Kaydet');
                ?>
            </form>
            
            <hr>
            
            <h2>Manuel Haber Çekimi</h2>
            <p>Ayarları kaydettikten sonra, RSS beslemesinden hemen haber çekmek için aşağıdaki butonu kullanabilirsiniz.</p>
            <form method="post">
                <?php wp_nonce_field('ghc_manual_import_nonce'); ?>
                <input type="submit" name="ghc_manual_import" class="button button-primary" value="Şimdi Haberleri Çek">
            </form>
        </div>
        <?php
    }
    yapmanız gerekn klasör oluşturup haber-cekici klasör içine de verdiğim bu kodu notepad++ içine atıp habercekici.php olarak kayıt edip zip lemek oradan eklentiyi wordpresse atmak olacak geliştirmek isteyenler geliştirsin diye verdim başarılar
  • 04-11-2025, 14:05:56
    #2
    Merhaba
    Hangi yapay zeka ile yaptınız calaude mi kullandınız
  • 04-11-2025, 14:09:12
    #3
    Temajet adlı üyeden alıntı: mesajı görüntüle
    Merhaba
    Hangi yapay zeka ile yaptınız calaude mi kullandınız
    milletin dalga geçtiği bir yapay zeka zamanında paylaştım tamamen ücretsiz diye bir ton tiye aldılar laf söylediler

    chat.z.ai
  • 04-11-2025, 14:11:05
    #4
    obisa adlı üyeden alıntı: mesajı görüntüle
    milletin dalga geçtiği bir yapay zeka zamanında paylaştım tamamen ücretsiz diye bir ton tiye aldılar laf söylediler

    chat.z.ai
    Bence dalga geçilecek birşey yok çoğu yapay zekada ilk çıktığında woaw denecek kadar iyi değildi
  • 04-11-2025, 14:11:10
    #5
    obisa adlı üyeden alıntı: mesajı görüntüle
    milletin dalga geçtiği bir yapay zeka zamanında paylaştım tamamen ücretsiz diye bir ton tiye aldılar laf söylediler

    chat.z.ai
    Denemek lazım yapılabiliyormuş demek ki.
  • 04-11-2025, 14:13:05
    #6
    EAWeb adlı üyeden alıntı: mesajı görüntüle
    Bence dalga geçilecek birşey yok çoğu yapay zekada ilk çıktığında woaw denecek kadar iyi değildi
    Temajet adlı üyeden alıntı: mesajı görüntüle
    Denemek lazım yapılabiliyormuş demek ki.
    yorumlarınız için teşekkürler ben her işimi bununla yapıyorum güzel işler çıkarıyor bana göre
  • 04-11-2025, 14:19:12
    #7
    Kişisel Rütbe
    Çok güzel paylaşım
  • 04-11-2025, 14:21:48
    #8
    Paylaşım için teşekkürler.
  • 04-11-2025, 14:53:30
    #9
    Yapay zeka yapıyor ama bir çok noktayı atlıyor yapay zeka ile yaptığım çoğu şeyde güvenlik ve bazı ince detayları fark etmediğini gözlemledim yapay zekanın ürettiği biraz komplike bir yazılım oluşturduysanız kontrol etmenizde fayda var.