<?php

// Bu örnek kod, RSS beslemelerinden yeni gönderileri almak için kullanılabilir.

function my_rss_feed_parser() {

// RSS beslemelerini tanımlayın
$feeds = array(
'https://www.example.com/feed/',
'https://www.example.org/feed/'
);

foreach ($feeds as $feed) {

// RSS beslemesini alın
$rss = fetch_feed($feed);

// RSS beslemesinde hata olup olmadığını kontrol edin
if (!is_wp_error($rss)) {

// RSS beslemesindeki en son öğeyi alın
$items = $rss->get_items(0);

foreach ($items as $item) {

// Başlığı alın
$title = $item->get_title();

// Başlığın veritabanında olup olmadığını kontrol edin
if (!post_exists($title)) {

// Yeni bir gönderi oluşturun
$post_id = wp_insert_post(array(
'post_title' => $title,
'post_content' => $item->get_content(),
'post_type' => 'post',
'post_status' => 'publish'
));

// Gönderiye özellik ekle
if ($post_id) {
add_post_meta($post_id, '_my_rss_feed_url', $item->get_permalink(), true);
}

// Gönderiye eklenen resimleri bulun
preg_match_all('/<img.+src=['"]([^'"]+)['"].*>/i', $item->get_content(), $matches);

// Her resim için, yerel dizinde bir kopyasını oluşturun
foreach ($matches[1] as $url) {
$file_name = basename($url);
$file_path = my_rss_feed_download_image($url, $file_name);

// Gönderiye eklenecek resmi ayarlayın
$attachment = array(
'post_title' => $file_name,
'post_content' => '',
'post_type' => 'attachment',
'post_mime_type' => mime_content_type($file_path),
'guid' => site_url() . '/wp-content/uploads/images/' . $file_name,
'post_parent' => $post_id,
'post_status' => 'inherit'
);

// Medya dosyasını yükleyin
$attachment_id = wp_insert_attachment($attachment, $file_path, $post_id);

// Gönderiye resmi ekle
if (!is_wp_error($attachment_id)) {
require_once ABSPATH . 'wp-admin/includes/image.php';
$attachment_data = wp_generate_attachment_metadata($attachment_id, $file_path);
wp_update_attachment_metadata($attachment_id, $attachment_data);
set_post_thumbnail($post_id, $attachment_id);
}
}
}
}
}
}
}

function my_rss_feed_download_image($url, $file_name) {

// Yerel klasöre indirilecek dosya yolunu belirleyin
$upload_dir = wp_upload_dir();
$file_path = $upload_dir['basedir'] . '/images/' . $file_name;

// Resmi indirin ve yerel klasöre kaydedin
$image_data = file_get_contents($url);
file_put_contents($file_path, $image_data);

// Dosya yolunu döndürün
return $file_path;
}
bu kod/bot birden çok sitenin feedine aynı anda bağlanıp
başlık içerik ve resimleri alır

daha dehşeti ise plugin yazabiliyor olması




<?php
/*
Plugin Name: My RSS Feed Plugin
Description: This plugin fetches RSS feeds from multiple websites and displays them in a widget.
Version: 1.0
Author: Your Name
Author URI: [URL="https://yourwebsite.com/"]https://yourwebsite.com[/URL]
*/

// Include the main RSS feed parser function
include_once('rss-feed-parser.php');

// Register the RSS feed widget
function register_my_rss_feed_widget() {
register_widget('My_RSS_Feed_Widget');
}
add_action('widgets_init', 'register_my_rss_feed_widget');

// Define the RSS feed widget class
class My_RSS_Feed_Widget extends WP_Widget {

// Widget setup
function __construct() {
parent::__construct(
'my_rss_feed_widget',
'My RSS Feed Widget',
array('description' => __('Displays RSS feeds from multiple websites', 'my_rss_feed_widget_domain'))
);
}

// Widget display
function widget($args, $instance) {
echo $args['before_widget'];
if(!empty($instance['title'])) {
echo $args['before_title'] . apply_filters('widget_title', $instance['title']) . $args['after_title'];
}
my_rss_feed_parser($instance['feed_urls'], $instance['max_items']);
echo $args['after_widget'];
}

// Widget form
function form($instance) {
$title = isset($instance['title']) ? $instance['title'] : __('New title', 'my_rss_feed_widget_domain');
$feed_urls = isset($instance['feed_urls']) ? $instance['feed_urls'] : '';
$max_items = isset($instance['max_items']) ? $instance['max_items'] : 5;
?>
<p>
<label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:'); ?></label>
<input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr($title); ?>">
</p>
<p>
<label for="<?php echo $this->get_field_id('feed_urls'); ?>"><?php _e('Feed URLs (separated by commas):'); ?></label>
<textarea class="widefat" rows="5" id="<?php echo $this->get_field_id('feed_urls'); ?>" name="<?php echo $this->get_field_name('feed_urls'); ?>"><?php echo esc_attr($feed_urls); ?></textarea>
</p>
<p>
<label for="<?php echo $this->get_field_id('max_items'); ?>"><?php _e('Maximum items to display:'); ?></label>
<input class="widefat" id="<?php echo $this->get_field_id('max_items'); ?>" name="<?php echo $this->get_field_name('max_items'); ?>" type="number" min="1" max="20" value="<?php echo esc_attr($max_items); ?>">
</p>
<?php
}

// Widget update
function update($new_instance, $old_instance) {
$instance = array();
$instance['title'] = (!empty($new_instance['title'])) ? sanitize_text_field($new_instance['title']) : '';
$instance['feed_urls'] = (!empty($new_instance['feed_urls'])) ? sanitize_text_field($new_instance['feed_urls']) : '';
$instance['max_items'] = (!empty($new_instance['max_items'])) ? absint($new_instance['max_items']) : 5;
return $instance;
}

}
// Define the RSS feed parser function function my_rss_feed_parser($feed_urls, $max_items) {
// Convert the comma-separated feed URLs to an array
$feed_urls = explode(',', $feed_urls);

// Loop through each feed URL and parse the RSS feed
foreach($feed_urls as $feed_url) {

// Parse the RSS feed
$rss = fetch_rss_feed($feed_url);

// Display the feed title and description
echo '<h3>' . $rss->channel['title'] . '</h3>';
echo '<p>' . $rss->channel['description'] . '</p>';

// Display the feed items
$item_count = 0;
foreach($rss->items as $item) {
if($item_count >= $max_items) break;
echo '<h4><a href="' . $item['link'] . '">' . $item['title'] . '</a></h4>';
echo '<p>' . $item['description'] . '</p>';
$item_count++;
}
}

}
// Define the RSS feed fetching function function fetch_rss_feed($feed_url) { require_once(ABSPATH . WPINC . '/rss.php'); $rss = fetch_rss($feed_url); return $rss; }



Bu eklenti, WordPress sitenize bir RSS besleme widget'ı eklemenizi sağlar. Eklenti, birden çok web sitesinden RSS beslemelerini alır, belirtilen maksimum sayıda öğe görüntüler ve bunları sitenizde yayınlar. Eklenti, her bir RSS beslemesi için başlık, açıklama ve öğeleri görüntüler.

Eklenti kodunu WordPress site yöneticinize yükleyebilir ve ardından sitenizde kullanabilirsiniz. Ek olarak, widget'ı sitenizin herhangi bir kenar çubuğuna eklemek için WordPress yönetici panelinizde "Görünüm" menüsüne gidin ve "Widget'lar" seçeneğini seçin. Ardından, "My RSS Feed Widget" widget'ını kenar çubuğunuza sürükleyin ve RSS besleme ayarlarını yapılandırın.

Not: Kodda bazı RSS feed ayarlarına örnek verilmiştir. Bu ayarları kendi ihtiyaçlarınıza göre düzenleyebilirsiniz. Ayrıca, resimlerin kendi hostunuzda barındırılması gibi ek özellikler eklemek isteyebilirsiniz.

Ben dehşete düştüm yazılımcı arkadaşlara başarılar...