wordpress devamını oku veri çekici
Gönderilme zamanı: Prş Şub 20, 2025 6:34 am
plugin altında yeni bir klasör içinde bir wordpress uygulaması yapalım.
1-bu uygulama yazının içeriğine eklenenkodunu kullanıcıya Devamını Oku linki olarak gösterecek.Kod:Tümünü seç
[devamini_oku]
2-Okuyucu linke tıklayınca sayfa yenilenirken yazının içeriğinde gömülü olan bir web adresini tarayıp bulacak.
3-bu linki /var/www/html/wp/wp-content/plugins/icerik-cekici konumundaki icerik-cekici.php ile yazının içeriğini çekerek yazıya ekleyecek.
4-yazıda mevcut olan aynı yazıları eklemeyecek. sadece yazıları ekleyecek.
5- işlem tamamlandığında [devamini_oku] kodunu silecek.
6-bunlar Devamını Oku linkine tıklanıp sayfa yenilenirken gerçekleşecek.
7-sadece aynı olamayan yazıları çekecek resimler görseller çekilmeyecek
icerik-cekici.php kodu aşağıda verilendir.Kod:Tümünü seç
<?php /* Plugin Name: İçerik Çekici Description: URL'den içerik çeker, otomatik başlık/etiket oluşturur, görsel işler. Version: 7.0 Author: Sizin Adınız */ if (!defined('ABSPATH')) exit; // Gerekli dosyaları yükle require_once plugin_dir_path(__FILE__) . 'includes/class-baslik-olusturucu.php'; require_once plugin_dir_path(__FILE__) . 'includes/class-etiket-olusturucu.php'; require_once plugin_dir_path(__FILE__) . 'includes/functions.php'; // Admin menüsü ekle add_action('admin_menu', 'icerik_cekici_menu'); function icerik_cekici_menu() { add_menu_page( 'İçerik Çekici', 'İçerik Çek', 'manage_options', 'icerik-cekici', 'icerik_cekici_admin_page', 'dashicons-download' ); } // Admin arayüzü function icerik_cekici_admin_page() { ?> <div class="wrap"> <h1>İçerik Çekici 🚀</h1> <form method="post"> <input type="url" name="hedef_url" placeholder="https://ornek.com" style="width: 400px; padding: 8px;" required> <?php wp_nonce_field('icerik_cekici_action', 'icerik_cekici_nonce'); ?> <input type="submit" name="cek" class="button button-primary" value="İçeriği Çek" style="margin-top: 10px;"> </form> <?php icerik_cekici_sonuc_goster(); ?> </div> <?php } // İşlem sonuçlarını göster function icerik_cekici_sonuc_goster() { if (!isset($_POST['cek'])) return; try { // Güvenlik kontrolü if (!wp_verify_nonce($_POST['icerik_cekici_nonce'], 'icerik_cekici_action')) { throw new Exception('Güvenlik ihlali tespit edildi!'); } $url = esc_url_raw($_POST['hedef_url']); // İçeriği çek ve işle $icerik = icerik_cekici_icerik_al($url); // Başlık oluştur $baslik_olusturucu = new BaslikOlusturucu($url); // Yazıyı oluştur $post_id = wp_insert_post([ 'post_title' => sanitize_text_field($baslik_olusturucu->baslik), 'post_content' => wp_kses_post($icerik->metin), 'post_status' => 'draft', 'post_author' => get_current_user_id(), ]); // Etiketleri ekle $etiket_olusturucu = new EtiketOlusturucu($icerik->metin); $etiketler = $etiket_olusturucu->etiketleri_olustur(); if (!empty($etiketler)) { wp_set_post_tags($post_id, $etiketler); } // Öne çıkan görsel if ($icerik->gorsel_id) { set_post_thumbnail($post_id, $icerik->gorsel_id); } // Başarı mesajı echo sprintf( '<div class="notice notice-success"><p>✅ İçerik oluşturuldu! <a href="%s">Düzenle</a></p></div>', esc_url(get_edit_post_link($post_id)) ); } catch (Exception $e) { echo sprintf( '<div class="notice notice-error"><p>⛔ Hata: %s</p></div>', esc_html($e->getMessage()) ); } }