স্কিপ করে মূল কন্টেন্ট এ যান

আপনার প্রথম ব্লুপ্রিন্ট তৈরি করুন

আসুন একটি প্রাথমিক ব্লুপ্রিন্ট তৈরি করি যা

  1. একটি নতুন WordPress সাইট তৈরি করে
  2. সাইটের শিরোনাম "My first Blueprint" সেট করে
  3. Adventurer থিম ইনস্টল করে
  4. WordPress প্লাগইন ডিরেক্টরি থেকে Hello Dolly প্লাগইন ইনস্টল করে
  5. একটি কাস্টম প্লাগইন ইনস্টল করে
  6. সাইটের কন্টেন্ট পরিবর্তন করে

1. একটি নতুন WordPress সাইট তৈরি করুন

আসুন নিম্নলিখিত কন্টেন্ট সহ একটি blueprint.json ফাইল তৈরি করে শুরু করি:

{}

মনে হতে পারে কিছুই ঘটছে না, কিন্তু এই ব্লুপ্রিন্ট ইতিমধ্যে সর্বশেষ মেজর সংস্করণ সহ একটি WordPress সাইট তৈরি করে।

  ব্লুপ্রিন্ট চালান  

অটোকমপ্লিট

আপনি যদি VS Code বা PHPStorm এর মতো একটি IDE ব্যবহার করেন, তাহলে আপনি অটোকমপ্লিট ব্লুপ্রিন্ট ডেভেলপমেন্ট অভিজ্ঞতার জন্য Blueprint JSON Schema ব্যবহার করতে পারেন। আপনার blueprint.json ফাইলের শীর্ষে নিম্নলিখিত লাইন যোগ করুন:

{
"$schema": "https://playground.wordpress.net/blueprint-schema.json"
}

VS Code-এ এটি দেখতে এরকম:

Autocompletion visualized

2. সাইটের শিরোনাম "My first Blueprint" সেট করুন

ব্লুপ্রিন্টগুলি একটি সিরিজ স্টেপ নিয়ে গঠিত যা একটি WordPress সাইট কীভাবে তৈরি করতে হয় তা সংজ্ঞায়িত করে। প্রথম স্টেপ লেখার আগে, স্টেপগুলির একটি খালি তালিকা ঘোষণা করুন:

{
"$schema": "https://playground.wordpress.net/blueprint-schema.json",
"steps": []
}

এই ব্লুপ্রিন্টটি খুব উত্তেজনাপূর্ণ নয়—এটি উপরের খালি ব্লুপ্রিন্টের মতো একই ডিফল্ট সাইট তৈরি করে। আসুন এটি সম্পর্কে কিছু করি!

WordPress সাইটের শিরোনাম blogname অপশনে সংরক্ষণ করে। আপনার প্রথম স্টেপ যোগ করুন এবং সেই অপশনটি "My first Blueprint" এ সেট করুন:

{
"$schema": "https://playground.wordpress.net/blueprint-schema.json",
"steps": [
{
"step": "setSiteOptions",
"options": {
"blogname": "My first Blueprint"
}
}
]
}

  ব্লুপ্রিন্ট চালান  

setSiteOptions স্টেপ WordPress ডাটাবেসে সাইট অপশনগুলি নির্দিষ্ট করে। options অবজেক্টে সেট করার জন্য কী-ভ্যালু পেয়ার রয়েছে। এই ক্ষেত্রে, আপনি blogname কী-এর মান "My first Blueprint" এ পরিবর্তন করেছেন। আপনি Blueprint Steps API Reference এ সমস্ত উপলব্ধ স্টেপ সম্পর্কে আরও পড়তে পারেন।

শর্টহ্যান্ড

আপনি শর্টহ্যান্ড সিনট্যাক্স ব্যবহার করে কিছু স্টেপ নির্দিষ্ট করতে পারেন। উদাহরণস্বরূপ, আপনি setSiteOptions স্টেপটি এভাবে লিখতে পারেন:

{
"$schema": "https://playground.wordpress.net/blueprint-schema.json",
"siteOptions": {
"blogname": "My first Blueprint"
}
}

শর্টহ্যান্ড সিনট্যাক্স এবং স্টেপ সিনট্যাক্স একে অপরের সাথে সম্পর্কিত। শর্টহ্যান্ড সিনট্যাক্স দিয়ে নির্দিষ্ট করা প্রতিটি স্টেপ স্বয়ংক্রিয়ভাবে steps অ্যারের শুরুতে একটি নির্বিচার ক্রমে যোগ করা হয়। আপনার কোনটি বেছে নেওয়া উচিত? সংক্ষিপ্ততা আপনার প্রধান উদ্বেগ হলে শর্টহ্যান্ড ব্যবহার করুন, এক্সিকিউশনের ক্রমের উপর আরও নিয়ন্ত্রণ প্রয়োজন হলে স্টেপ ব্যবহার করুন।

3. Adventurer থিম ইনস্টল করুন

Adventurer হল একটি ওপেন-সোর্স থিম WordPress থিম ডিরেক্টরিতে উপলব্ধ। আসুন installTheme স্টেপ ব্যবহার করে এটি ইনস্টল করি:

{
"siteOptions": {
"blogname": "My first Blueprint"
},
"steps": [
{
"step": "installTheme",
"themeData": {
"resource": "wordpress.org/themes",
"slug": "adventurer"
}
}
]
}

  ব্লুপ্রিন্ট চালান  

সাইটটি এখন নিচের স্ক্রিনশটের মতো দেখতে হবে:

Site with the adventurer theme

রিসোর্স

themeData একটি রিসোর্স সংজ্ঞায়িত করে এবং স্টেপটি সম্পূর্ণ করার জন্য প্রয়োজনীয় একটি বাহ্যিক ফাইল রেফারেন্স করে। Playground বিভিন্ন ধরনের রিসোর্স সমর্থন করে, যার মধ্যে রয়েছে

  • url,
  • wordpress.org/themes,
  • wordpress.org/plugins,
  • vfs (ভার্চুয়াল ফাইল সিস্টেম), অথবা
  • literal

উদাহরণটি wordpress.org/themes রিসোর্স ব্যবহার করে, যার জন্য WordPress থিম ডিরেক্টরিতে ব্যবহৃত একটি slug প্রয়োজন:

এই ক্ষেত্রে, https://wordpress.org/themes/<slug>/ হয়ে যায় https://wordpress.org/themes/adventurer/

note

সমর্থিত রিসোর্স সম্পর্কে আরও জানুন Blueprint Resources API Reference এ।

4. Hello Dolly প্লাগইন ইনস্টল করুন

একটি ক্লাসিক WordPress প্লাগইন যা অ্যাডমিন ড্যাশবোর্ডে "Hello, Dolly!" গানের র্যান্ডম লিরিক্স প্রদর্শন করে। আসুন installPlugin স্টেপ ব্যবহার করে এটি ইনস্টল করি:

{
"siteOptions": {
"blogname": "My first Blueprint"
},
"steps": [
{
"step": "installTheme",
"themeData": {
"resource": "wordpress.org/themes",
"slug": "adventurer"
}
},
{
"step": "installPlugin",
"pluginData": {
"resource": "wordpress.org/plugins",
"slug": "hello-dolly"
}
}
]
}

  ব্লুপ্রিন্ট চালান  

Hello Dolly প্লাগইনটি এখন ইনস্টল এবং সক্রিয় করা হয়েছে।

themeData এর মতো, pluginData স্টেপের জন্য প্রয়োজনীয় একটি বাহ্যিক ফাইলের রেফারেন্স সংজ্ঞায়িত করে। উদাহরণটি WordPress প্লাগইন ডিরেক্টরি থেকে মিলে যাওয়া slug সহ প্লাগইন ইনস্টল করতে wordpress.org/plugins রিসোর্স ব্যবহার করে।

5. একটি কাস্টম প্লাগইন ইনস্টল করুন

আসুন একটি কাস্টম WordPress প্লাগইন ইনস্টল করি যা অ্যাডমিন ড্যাশবোর্ডে একটি বার্তা যোগ করে:

<?php
/*
Plugin Name: "Hello" on the Dashboard
Description: A custom plugin to showcase WordPress Blueprints
Version: 1.0
Author: WordPress Contributors
*/

function my_custom_plugin() {
echo '<h1>Hello from My Custom Plugin!</h1>';
}

add_action('admin_notices', 'my_custom_plugin');

আপনি installPlugin ব্যবহার করতে পারেন, কিন্তু এর জন্য একটি ZIP ফাইল তৈরি করতে হবে। প্লাগইনটি কাজ করে কিনা তা দেখতে আসুন ভিন্ন কিছু দিয়ে শুরু করি:

  1. mkdir স্টেপ ব্যবহার করে একটি wp-content/plugins/hello-from-the-dashboard ডিরেক্টরি তৈরি করুন।
  2. writeFile স্টেপ ব্যবহার করে একটি plugin.php ফাইল লিখুন।
  3. activatePlugin স্টেপ ব্যবহার করে প্লাগইনটি সক্রিয় করুন।

একটি ব্লুপ্রিন্টে এটি দেখতে এরকম:

{
// ...
"steps": [
// ...
{
"step": "mkdir",
"path": "/wordpress/wp-content/plugins/hello-from-the-dashboard"
},
{
"step": "writeFile",
"path": "/wordpress/wp-content/plugins/hello-from-the-dashboard/plugin.php",
"data": "<?php\n/*\nPlugin Name: \"Hello\" on the Dashboard\nDescription: A custom plugin to showcase WordPress Blueprints\nVersion: 1.0\nAuthor: WordPress Contributors\n*/\n\nfunction my_custom_plugin() {\n echo '<h1>Hello from My Custom Plugin!</h1>';\n}\n\nadd_action('admin_notices', 'my_custom_plugin');"
},
{
"step": "activatePlugin",
"pluginPath": "hello-from-the-dashboard/plugin.php"
}
]
}

শেষ কাজটি হল ব্যবহারকারীকে অ্যাডমিন হিসাবে লগইন করা। আপনি login স্টেপ এর একটি শর্টহ্যান্ড দিয়ে এটি করতে পারেন:

{
"login": true,
"steps": [
// ...
]
}

এখানে সম্পূর্ণ ব্লুপ্রিন্ট:

{
"$schema": "https://playground.wordpress.net/blueprint-schema.json",
"login": true,
"siteOptions": {
"blogname": "My first Blueprint"
},
"steps": [
{
"step": "installTheme",
"themeData": {
"resource": "wordpress.org/themes",
"slug": "adventurer"
}
},
{
"step": "installPlugin",
"pluginData": {
"resource": "wordpress.org/plugins",
"slug": "hello-dolly"
}
},
{
"step": "mkdir",
"path": "/wordpress/wp-content/plugins/hello-from-the-dashboard"
},
{
"step": "writeFile",
"path": "/wordpress/wp-content/plugins/hello-from-the-dashboard/plugin.php",
"data": "<?php\n/*\nPlugin Name: \"Hello\" on the Dashboard\nDescription: A custom plugin to showcase WordPress Blueprints\nVersion: 1.0\nAuthor: WordPress Contributors\n*/\n\nfunction my_custom_plugin() {\n echo '<h1>Hello from My Custom Plugin!</h1>';\n}\n\nadd_action('admin_notices', 'my_custom_plugin');"
},
{
"step": "activatePlugin",
"pluginPath": "hello-from-the-dashboard/plugin.php"
}
]
}

  ব্লুপ্রিন্ট চালান  

আপনি যখন ড্যাশবোর্ডে নেভিগেট করবেন তখন এটি দেখতে এরকম:

Site with the custom plugin

একটি প্লাগইন তৈরি করুন এবং এটি জিপ করুন

PHP ফাইলগুলিকে JSON হিসাবে এনকোড করা দ্রুত পরীক্ষার জন্য উপযোগী হতে পারে, কিন্তু এটি অসুবিধাজনক এবং পড়তে কঠিন। পরিবর্তে, প্লাগইন কোড সহ একটি ফাইল তৈরি করুন, এটি কম্প্রেস করুন, এবং এটি ইনস্টল করতে installPlugin স্টেপresource হিসাবে ZIP ফাইল ব্যবহার করুন (URL-এর পাথটি আপনার GitHub রিপোজিটরিতে থাকা পাথের সাথে মিলতে হবে):

{
"$schema": "https://playground.wordpress.net/blueprint-schema.json",
"login": true,
"siteOptions": {
"blogname": "My first Blueprint"
},
"steps": [
{
"step": "installTheme",
"themeData": {
"resource": "wordpress.org/themes",
"slug": "adventurer"
}
},
{
"step": "installPlugin",
"pluginData": {
"resource": "wordpress.org/plugins",
"slug": "hello-dolly"
}
},
{
"step": "installPlugin",
"pluginData": {
"resource": "url",
"url": "https://raw.githubusercontent.com/wordpress/blueprints/trunk/docs/assets/hello-from-the-dashboard.zip"
}
}
]
}

আপনি শর্টহ্যান্ড সিনট্যাক্স ব্যবহার করে সেই ব্লুপ্রিন্টটি আরও ছোট করতে পারেন:

{
"$schema": "https://playground.wordpress.net/blueprint-schema.json",
"login": true,
"siteOptions": {
"blogname": "My first Blueprint"
},
"plugins": ["hello-dolly", "https://raw.githubusercontent.com/wordpress/blueprints/trunk/docs/assets/hello-from-the-dashboard.zip"],
"steps": [
{
"step": "installTheme",
"themeData": {
"resource": "wordpress.org/themes",
"slug": "adventurer"
}
}
]
}

  ব্লুপ্রিন্ট চালান  

6. সাইটের কন্টেন্ট পরিবর্তন করুন

অবশেষে, আসুন সাইটের ডিফল্ট কন্টেন্ট মুছে ফেলি এবং একটি WordPress এক্সপোর্ট ফাইল (WXR) থেকে নতুন কন্টেন্ট ইম্পোর্ট করি।

পুরানো কন্টেন্ট মুছে ফেলুন

ডিফল্ট কন্টেন্ট মুছে ফেলার জন্য কোনো ব্লুপ্রিন্ট স্টেপ নেই, কিন্তু আপনি PHP কোডের একটি স্নিপেট দিয়ে এটি করতে পারেন:

<?php
require '/wordpress/wp-load.php';

// Delete all posts and pages
$posts = get_posts(array(
'numberposts' => -1,
'post_type' => array('post', 'page'),
'post_status' => 'any'
));

foreach ($posts as $post) {
wp_delete_post($post->ID, true);
}

সাইট সেটআপের সময় সেই কোডটি চালাতে, runPHP স্টেপ ব্যবহার করুন:

{
// ...
"steps": [
// ...
{
"step": "runPHP",
"code": "<?php\nrequire '/wordpress/wp-load.php';\n\n$posts = get_posts(array(\n 'numberposts' => -1,\n 'post_type' => array('post', 'page'),\n 'post_status' => 'any'\n));\n\nforeach ($posts as $post) {\n wp_delete_post($post->ID, true);\n}"
}
]
}

নতুন কন্টেন্ট ইম্পোর্ট করুন

আসুন একটি WordPress এক্সপোর্ট (WXR) ফাইল ইম্পোর্ট করতে importWxr স্টেপ ব্যবহার করি যা WordPress থিম পরীক্ষা করতে সাহায্য করে। ফাইলটি WordPress/theme-test-data রিপোজিটরিতে উপলব্ধ, এবং আপনি এটির raw.githubusercontent.com ঠিকানার মাধ্যমে অ্যাক্সেস করতে পারেন: https://raw.githubusercontent.com/WordPress/theme-test-data/master/themeunittestdata.wordpress.xml

এখানে চূড়ান্ত ব্লুপ্রিন্টটি দেখতে এরকম:

{
"$schema": "https://playground.wordpress.net/blueprint-schema.json",
"login": true,
"siteOptions": {
"blogname": "My first Blueprint"
},
"plugins": ["hello-dolly", "https://raw.githubusercontent.com/wordpress/blueprints/trunk/docs/assets/hello-from-the-dashboard.zip"],
"steps": [
{
"step": "installTheme",
"themeData": {
"resource": "wordpress.org/themes",
"slug": "adventurer"
}
},
{
"step": "runPHP",
"code": "<?php\nrequire '/wordpress/wp-load.php';\n\n$posts = get_posts(array(\n 'numberposts' => -1,\n 'post_type' => array('post', 'page'),\n 'post_status' => 'any'\n));\n\nforeach ($posts as $post) {\n wp_delete_post($post->ID, true);\n}"
},
{
"step": "importWxr",
"file": {
"resource": "url",
"url": "https://raw.githubusercontent.com/WordPress/theme-test-data/master/themeunittestdata.wordpress.xml"
}
}
]
}

  ব্লুপ্রিন্ট চালান  

এবং এটাই। আপনার প্রথম ব্লুপ্রিন্ট তৈরি করার জন্য অভিনন্দন! 🥳