Wordpress ile başka bir wordpress sitesinden içerik çekme (RestAPİ Eklentisi)
12
●536
- 12-11-2024, 20:15:24
- 12-11-2024, 21:25:17dijitalchi adlı üyeden alıntı: mesajı görüntüle
<?php /* Plugin Name: Category, Post, and Page Importer Description: Belirtilen WordPress sitesinden kategoriler, yazılar ve sayfaları REST API ile çekip yeni siteye ekler. Version: 1.1 Author: Your Name */ // REST API aracılığıyla içerik çekme fonksiyonu function import_content_from_source_site($source_site_url) { if (empty($source_site_url)) { return; // URL boşsa işlem yapılmaz } // Kategorileri kaynaktan çek $categories = json_decode(file_get_contents($source_site_url . '/categories')); if (is_array($categories)) { // Çekilen kategorileri hedef siteye ekle foreach ($categories as $category) { $term = wp_insert_term($category->name, 'category', array( 'description' => $category->description, 'slug' => $category->slug )); // Eğer kategori başarıyla eklendiyse yazıları çek if (!is_wp_error($term)) { $category_id = $category->id; // Kategoriye ait yazıları kaynaktan çek $posts = json_decode(file_get_contents($source_site_url . '/posts?categories=' . $category_id)); if (is_array($posts)) { foreach ($posts as $post) { // Yazıyı hedef siteye ekle wp_insert_post(array( 'post_title' => $post->title->rendered, 'post_content' => $post->content->rendered, 'post_status' => 'publish', 'post_author' => 1, 'post_category'=> array($term['term_id']), )); } } } } } // Sayfaları kaynaktan çek $pages = json_decode(file_get_contents($source_site_url . '/pages')); if (is_array($pages)) { foreach ($pages as $page) { wp_insert_post(array( 'post_title' => $page->title->rendered, 'post_content' => $page->content->rendered, 'post_status' => 'publish', 'post_type' => 'page', 'post_author' => 1 )); } } } // Yönetim panelinde eklentiyi çalıştırmak için bir menü ekleyin function category_post_importer_menu() { add_menu_page( 'İçerik İçe Aktar', 'İçerik İçe Aktar', 'manage_options', 'category-post-importer', 'category_post_importer_admin_page' ); } add_action('admin_menu', 'category_post_importer_menu'); // Yönetim sayfası içeriği function category_post_importer_admin_page() { echo '<h1>İçerik İçe Aktar</h1>'; echo '<form method="post" action="">'; echo '<label for="source_site_url">Kaynak Site URL\'si:</label>'; echo '<input type="text" id="source_site_url" name="source_site_url" value="' . (isset($_POST['source_site_url']) ? esc_attr($_POST['source_site_url']) : '') . '" size="50">'; echo '<br><br>'; echo '<input type="submit" name="import_content" value="Çek" class="button button-primary">'; echo '</form>'; // Eğer form gönderildiyse içerik çekme fonksiyonunu çağır if (isset($_POST['import_content']) && !empty($_POST['source_site_url'])) { $source_site_url = esc_url_raw($_POST['source_site_url']) . '/wp-json/wp/v2'; // İçeriği çek import_content_from_source_site($source_site_url); echo '<div class="updated"><p>İçerikler başarıyla içe aktarıldı.</p></div>'; } } ?>
- 13-11-2024, 02:00:20hocam sağolasın ama çalışmıyor her linki denedim direk site linki blog linkini direk yazının linkini kategori linkini falanda ekledim çalışmıyor