এক্সএমএল-আরপিসি ক্লায়েন্ট হিসাবে ওয়ার্ডপ্রেস?


13

আমি দুটি সাইটে পোস্ট সম্পাদনাগুলি সিঙ্ক করতে চাই। পরীক্ষার পরিবেশ, উত্পাদন নয়। একক দিকনির্দেশ (সাইট এ টু বি তে কিন্তু পিছনের দিকে নয়)।

মূলত আমি আমার স্থানীয় টেস্ট স্ট্যাকের পোস্টটি সম্পাদনা করি এবং দূরবর্তী সার্ভারে একই পোস্ট (পরীক্ষার সামগ্রী সেটের অংশ) ফলাফল সামগ্রীর একই অনুলিপি সহ আপডেট করা উচিত।

আমি জানি যে এক্সএমএল-আরপিসি সার্ভারটি ওয়ার্ডপ্রেসে কার্যকর করা হয়েছে ... তবে ওয়ার্ডপ্রেস নিজেই কোনও এক্সএমএল-আরপিসি ক্লায়েন্ট নয় এবং এটিকে তৈরি করা কতটা সহজ হবে তা আমার ধারণা নেই (আমি সাধারণত এক্সএমএল-কিছু সম্পর্কে সতর্ক থাকি :)

সুতরাং আমি কি এক্সএমএল-আরপিসির সাথে যেতে পারি এবং ক্লায়েন্টের কার্যকারিতা বাস্তবায়ন করব বা এটি সময়ের মূল্য নয় এবং পরিবর্তনগুলি ধরার জন্য আমার কাস্টম ফর্ম বা রিমোট সার্ভারে কিছু তৈরি করা উচিত?


ফ্যাচ_ফিড এবং সিম্পল পাই ব্যবহার করা কার্যকর করা সহজ হতে পারে।
ক্রিস_ও

@ ক্রিস_ও হুম্মম ... তবে তারপরে আমার (1) সাইটে সমস্ত পোস্টের সাথে ফিড তৈরি করতে হবে (2) প্রতিবার পরিবর্তনের জন্য সেই ফিডের প্রতিটি পোস্ট স্ক্যান করতে হবে। (সম্পাদনা) মূলত এটি টান পরিস্থিতি (বি এ থেকে টান) এবং আমার মনে হয় আমার ধাক্কা দরকার (একটি বিতে ধাক্কা দেয়)
রাস্ট

এটি নতুন পোস্টগুলি ধরার জন্য কাজ করবে তবে পরিবর্তনগুলি পরীক্ষা করার জন্য এটি খুব দক্ষ নয়।
ক্রিস_ও

@ ক্রিস_ও এই শর্ত নেই যে আমি নতুন পোস্টগুলি সম্পাদনা করব, বিপরীতে - আমি ফিরে গিয়ে কিছু পুরানো পোস্ট সম্পাদনা করতে পারি যদি আমাকে অবহেলিত পরীক্ষার ডেটা পরিবর্তন করতে হয় তবে।
প্রথম

উত্তর:


13

ওয়ার্ডপ্রেসে ইতিমধ্যে একটি এক্সএমএল-আরপিসি ক্লায়েন্ট শ্রেণি প্রয়োগ করা হয়েছে। এটি সার্ভার অংশের মতো একই ফাইলে রয়েছে: class-IXR.phpঅবস্থিত wp-includes

নিম্নলিখিত কোডটি একটি নতুন পোস্ট তৈরি করবে। আপনি এটিকে কোনও ফাংশনে আবদ্ধ করতে এবং এটি save_post/ update_postক্রিয়া হুকের সাথে সংযুক্ত করতে পারেন । উভয় অংশ সিঙ্ক করতে, আপনি পোস্ট-স্লাগ পরীক্ষা করতে পারেন বা দ্বিতীয় ব্লগে একই পোস্ট-আইডি জমা দিতে পারেন।

$rpc = new IXR_Client('http://second-blog-domain.tld/path/to/wp/xmlrpc.php');

$post = array(
    'title' => 'Post Title',
    'categories' => array('Category A', 'Category B'),
    'mt_keywords' => 'tagA, tagB, tagC',
    'description' => 'Post Content',
    'wp_slug' => 'post-slug'
);

$params = array(
    0,
    'username',
    'password',
    $post,
    'publish'
);

$status = $rpc->query(
    'metaWeblog.newPost',
    $params
);

if(!$status) {
    echo 'Error [' . $rpc->getErrorCode() . ']: ' . $rpc->getErrorMessage();
    exit();
}

আপনাকে ধন্যবাদ, আমি আসলে এটির ক্লায়েন্ট আছে তা সম্পর্কে কোনও ধারণা ছিল না এবং দ্রুত কোডেক্স অনুসন্ধান এটি মিস করেছে।
প্রথম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.