مینی لرن
11 subscribers
2.56K links
آموزش های کوتاه برنامه نویسی
Download Telegram
کلاس WP_List_Table::get_views() در وردپرس



📌 آشنایی با WP_List_Table::get_views()
با سلام! امروز می‌خواهیم درباره‌ی متد WP_List_Table::get_views() در وردپرس صحبت کنیم. این متد به ما کمک می‌کند تا نمایی از اطلاعات پایانی یا کلیدهای خاصی را در جدول‌ها نمایش دهیم. به عبارت دیگر، وقتی شما لیست‌هایی از داده‌ها را در وردپرس در حال مدیریت هستید، می‌خواهید برای راحت‌تر کردن کارها، این داده‌ها را به بخش‌های مختلف تقسیم‌بندی کنید.

به عنوان مثال، تصور کنید یک لیست از پست‌ها دارید که می‌خواهید وضعیت‌های مختلف مانند “انتشار شده” و “پیش‌نویس” را نمایش دهید. متد get_views() می‌تواند این کار را برای شما انجام دهد. با استفاده از این متد، می‌توانیم لینک‌هایی بسازیم که کاربران به راحتی بین حالت‌های مختلف جابجا شوند.

این متد بخشی از WP_List_Table است که برای نمایه‌سازی داده‌ها در وردپرس استفاده می‌شود. به عبارتی، WP_List_Table به ما اجازه می‌دهد اطلاعات را به شکل جدول نمایش دهیم و get_views() به ما کمک می‌کند تا نمای مناسبی از داده‌های خود داشته باشیم.

بیایید کمی بیشتر در مورد نحوه‌ی استفاده از این متد و روش‌های سفارشی‌سازی آن صحبت کنیم. برای استفاده از این متد، معمولاً شما یک کلاس سفارشی می‌سازید که به WP_List_Table وراثت می‌دهد و در آن می‌توانید متد get_views() را فراخوانی کنید. با این کار، می‌توانید با توجه به نیازهای خود ویوهای متفاوتی را نمایش دهید.

📌 نمونه کد

class My_Custom_Table extends WP_List_Table {
function get_views() {
$views = array();
$views['all'] = '<a href="?post_type=my_post_type">همه</a>';
$views['published'] = '<a href="?post_type=my_post_type&status=published">منتشر شده</a>';
$views['draft'] = '<a href="?post_type=my_post_type&status=draft">پیش‌نویس</a>';

return $views;
}
// سایر متدها و کدهای لازم
}


📌 توضیحات کد

class My_Custom_Table
این خط یک کلاس جدید به نام My_Custom_Table ایجاد می‌کند که از WP_List_Table وراثت می‌گیرد.
function get_views()
در اینجا متدی به نام get_views تعریف شده است.
$views = array();
یک آرایه جدید به نام $views برای نگهداری لینک‌های مختلف ایجاد می‌شود.
$views['all'] = '<a href="?post_type=my_post_type">همه</a>';
لینکی برای نمایش همه‌ی پست‌ها در آرایه $views اضافه می‌شود.
$views['published'] = '<a href="?post_type=my_post_type&status=published">منتشر شده</a>';
لینکی برای نمایش پست‌های منتشر شده می‌باشد.
$views['draft'] = '<a href="?post_type=my_post_type&status=draft">پیش‌نویس</a>';
لینکی برای نمایش پست‌های پیش‌نویس اضافه می‌شود.
return $views;
در نهایت آرایه $views بازگردانده می‌شود تا در جدول نمایش داده شود.



👈 مشاهده در مینی لرن [ کلیک کنید ] 👉

#Wordpress #وردپرس #WP_List_Table #برنامه‌نویسی #کدنویسی #مدیریت_پست
تنظیم دکمه منوی چت در ربات تلگرام



📌 آشنایی با دکمه منوی چت در ربات تلگرام

دکمه منوی چت یکی از ویژگی‌های جالب ربات‌های تلگرامی است که به شما اجازه می‌دهد عملکردهای مختلفی را به راحتی در دسترس کاربران قرار دهید. با کمک API ربات تلگرام، شما می‌توانید این منو را شخصی‌سازی کنید و انواع گزینه‌ها را به کاربر خود ارائه دهید.

برای استفاده از این ویژگی، ابتدا باید از متد setChatMenuButton استفاده کنید. این متد به شما اجازه می‌دهد که منوی چت را برای ربات خود تنظیم کنید و گزینه‌های مختلفی مانند شروع، کمک، و گزینه‌های دیگر را به کاربران نشان دهید. کار کردن با این متد بسیار ساده است.

به عنوان مثال، فرض کنید می‌خواهید یک دکمه «کمک» به منوی چت اضافه کنید. این کار به کاربر این امکان را می‌دهد که به راحتی به اطلاعات لازم دسترسی پیدا کند. همچنین می‌توانید دکمه‌های دیگری مانند «تنظیمات» و «تماس با ما» را نیز اضافه کنید. این کار تعامل کاربر را با ربات شما افزایش می‌دهد.

در ادامه، ما به ارائه کدی می‌پردازیم که باعث می‌شود دکمه منوی چت جدیدی برای ربات تلگرام شما ایجاد شود. ابتدا باید توکن ربات خود را داشته باشید و سپس می‌توانید با استفاده از HTTP POST به API ربات تلگرام دسترسی پیدا کنید.
📌 نمونه کد برای تنظیم دکمه منوی چت

const TelegramBot = require('node-telegram-bot-api');
const token = 'YOUR_TELEGRAM_BOT_TOKEN';

const bot = new TelegramBot(token, { polling: true });

const menuButton = {
text: 'کمک',
};

bot.setChatMenuButton(menuButton).then(() => {
console.log('دکمه منوی چت با موفقیت تنظیم شد.');
}).catch(err => {
console.error('خطا در تنظیم دکمه منوی چت:', err);
});


📌 توضیح خط به خط کد

کد:const TelegramBot = require('node-telegram-bot-api');

این خط کتابخانه ربات تلگرام را به برنامه ما وارد می‌کند.

کد:const token = 'YOUR_TELEGRAM_BOT_TOKEN';

اینجا توکن ربات خود را که از BotFather گرفته‌اید، معرفی می‌کنید.

کد:const bot = new TelegramBot(token, { polling: true });

در این خط یک نمونه جدید از ربات تلگرام ایجاد می‌کنید که به قابلیت polling متصل است.

کد:const menuButton = { text: 'کمک' };

در این بخش دکمه منوی چت را تعریف می‌کنید و متن آن را مشخص می‌کنید.

کد:bot.setChatMenuButton(menuButton).then(() => { ... });

در این خط با استفاده از متد setChatMenuButton دکمه منوی چت را تنظیم می‌کنید و پس از موفقیت به چاپ پیامی می‌رسید.

کد:console.error('خطا در تنظیم دکمه منوی چت:', err);

اگر خطایی در تنظیم دکمه منوی چت پیش بیاید، این خط خطا را به کنسول چاپ می‌کند.



👈 مشاهده در مینی لرن [ کلیک کنید ] 👉

#Telegram #ربات_تلگرام #API_تلگرام #برنامه‌نویسی_ربات #JavaScript #node_telegram_bot_api
استفاده از proxy_http_version در Nginx



اگر بخواهیم به عملکرد Nginx به عنوان یک پروکسی فکر کنیم، باید متوجه شویم که بخش های مختلفی در این فرایند نقش دارند. یکی از این بخش ها، ماژول ngx_http_proxy_module است که مسئولیت انتقال درخواست ها و پاسخ‌ها از یک سرور به سرور دیگر را بر عهده دارد. یکی از ویژگی های جالب این ماژول، دستور proxy_http_version است. به کمک این دستور، می‌توانیم نسخه پروتکل HTTP که در هنگام برقراری ارتباط با سرور اصلی استفاده می‌شود را تعیین کنیم.

نسخه پروتکل HTTP می‌تواند بر روی رفتار درخواست‌هایی که به سرور ارسال می‌شود، تاثیر بگذارد. برای مثال، برای سرورهایی که شناسایی خاصی بر اساس نسخه پروتکل انجام می‌دهند، مهم است که از نسخه ای که انتظار دارند، استفاده شود. در بعضی موارد، قدیمی بودن نسخه ای که استفاده می‌کنید می‌تواند مانع از دریافت پاسخ های درست از سرور شود.

حال به سراغ کاربرد این دستور می‌رویم. فرض کنید شما یک وب‌سایت دارید که به یک سرور دیگر متصل است و این سرور انتظار دارد که از HTTP/1.1 استفاده شود. در این شرایط، شما باید مطمئن شوید که Nginx درخواست‌ها را با این نسخه ارسال می‌کند تا مشکلات اتصال به حداقل برسد.

به عنوان مثال، با استفاده از دستور proxy_http_version می‌توانیم عبارتی شبیه به کد زیر داشته باشیم. حالا بیایید ببینیم که چطور می‌توانیم این دستور را به کار ببریم و چه تاثیری بر روی عملکرد Nginx دارد.
location /api {
proxy_pass http://backend-server;
proxy_http_version 1.1;
proxy_set_header Connection "upgrade";
}


در این کد یک بخش از پیکربندی Nginx را مشاهده می‌کنید که دستور proxy_http_version به وضوح در آن مشاهده می‌شود.
location /api {
proxy_pass http://backend-server;
proxy_http_version 1.1;
proxy_set_header Connection "upgrade";
}


📌 توضیح کد

location /api

این خط تعیین می‌کند که هر گونه درخواست به آدرس /api باید توسط Nginx پردازش شود.

proxy_pass http://backend-server;

این خط مشخص می‌کند که درخواست‌ها باید به سرور پشت (backend-server) ارسال شوند.

proxy_http_version 1.1;

این دستور به Nginx می‌گوید که برای ارتباط با سرور پشت از پروتکل HTTP/1.1 استفاده کند.

proxy_set_header Connection "upgrade";

این خط سرراست است و به Nginx می‌گوید که یک هدر خاص به درخواست اضافه کند تا در برخی سناریو‌ها همچون WebSocket کار کند.

👈 مشاهده در مینی لرن [ کلیک کنید ] 👉

#Ngnix #Nginx #پروکسی #HTTP #تنظیمات_Nginx #ماژول_ngx_http_proxy_module #سرور
آشنایی با متد formats_dropdown() در کلاس WP_Posts_List_Table



در وردپرس، مدیریت محتوای وب‌سایت‌ها بسیار مهم است و این امر با ابزارها و کلاس‌های مختلفی انجام می‌شود. یکی از این ابزارها کلاس WP_Posts_List_Table است که به ما کمک می‌کند تا لیست پست‌ها را به راحتی مدیریت کنیم. یکی از متدهای مهم این کلاس، formats_dropdown() است که در این مطلب می‌خواهیم به بررسی آن بپردازیم.
متد formats_dropdown() به ما این امکان را می‌دهد که یک منوی کشویی (Dropdown) برای انتخاب فرمت‌های مختلف پست‌ها ایجاد کنیم. فرمت‌های پست در وردپرس انواع مختلفی از محتوا را تعریف می‌کنند؛ به عنوان مثال، یک پست می‌تواند به عنوان ویدئو، تصویر یا سوال مطرح شود. این متد به ما این امکان را می‌دهد که از بین این فرمت‌ها گزینه‌ای را انتخاب کنیم و نتایج مورد نظر خود را فیلتر کنیم.
استفاده از این متد باعث تسهیل مدیریت و جستجوی محتوا می‌شود. به عنوان یک توسعه‌دهنده، اگر بخواهید لیستی از پست‌ها را بر اساس فرمت آن‌ها فیلتر کنید، می‌توانید به راحتی با استفاده از این متد این کار را انجام دهید. به این ترتیب، کاربرهای سایت شما می‌توانند محتوا را به شکل بهتری پیدا کنند و با آن تعامل داشته باشند.
اکنون که با مفهوم کلی formats_dropdown() آشنا شدیم، بیایید نگاهی به نحوه استفاده از آن در کد بیندازیم. در مثال زیر، ما یک منوی کشویی برای انتخاب فرمت‌های پست ایجاد می‌کنیم و آن را در صفحه مدیریت وردپرس نمایش می‌دهیم.

public function formats_dropdown() {
$post_formats = get_post_format_strings();
$current_format = isset( $_GET['post_format'] ) ? $_GET['post_format'] : '';

echo '<select name="post_format">';
foreach ( $post_formats as $format_value => $format_label ) {
$selected = selected( $current_format, $format_value, false );
echo '<option value="' . esc_attr( $format_value ) . '" ' . $selected . '>' . esc_html( $format_label ) . '</option>';
}
echo '</select>';
}

حال بیایید کد بالا را خط به خط بررسی کنیم:
📌 خط 1: تعریف تابع
در این خط ما تابع formats_dropdown() را تعریف می‌کنیم که بدون هیچ ورودی کار می‌کند.
📌 خط 2: دریافت فرمت‌های پست
با استفاده از تابع get_post_format_strings() فرمت‌های موجود پست را دریافت می‌کنیم و آن‌ها را در متغیری به نام $post_formats ذخیره می‌کنیم.
📌 خط 3: دریافت فرمت فعلی
در این خط، فرمت فعلی که کاربر انتخاب کرده است را بررسی می‌کنیم. اگر فرمت فعلی وجود داشته باشد، آن را در متغیر $current_format ذخیره می‌کنیم.
📌 خط 5: شروع ایجاد منوی کشویی
اینجا ما با استفاده از echo، تگ <select> را برای منو تعریف می‌کنیم و نام آن را post_format قرار می‌دهیم.
📌 خط‌های 6 تا 8: اضافه کردن گزینه‌ها
در این بخش با استفاده از یک حلقه foreach، به ازای هر فرمت موجود یک گزینه در منو ایجاد می‌کنیم. برای هر گزینه، بررسی می‌کنیم که آیا فرمت فعلی با فرمت گزینه مطابقت دارد یا خیر، و در صورت مطابقت آن را انتخاب می‌کنیم.
📌 خط 9: پایان منوی کشویی
در آخر، تگ </select> را برای بستن منوی کشویی اضافه می‌کنیم.


👈 مشاهده در مینی لرن [ کلیک کنید ] 👉

#Wordpress #وردپرس #WordPress #کلاس‌های_وردپرس #WP_Posts_List_Table #مدیریت_محتوا #فرمت_پست
HashManager::info() در لاراول ۱۱


📌 در مورد HashManager::info() در لاراول ۱۱
سلام! امروز می‌خواهیم درباره‌ی یکی از ویژگی‌های جالب در فریمورک لاراول صحبت کنیم: متد HashManager::info(). اگر شما کاربر لاراول باشید، حتماً می‌دانید که یکی از کارهای مهم در هر پروژه‌ی وب، امنیت اطلاعات کاربران است. یکی از روش‌های معمول برای این کار، هشی کردن پسوردها است. لاراول در این زمینه ابزارهای قدرتمندی دارد.

متد info() به شما امکان می‌دهد تا اطلاعاتی درباره‌ی توکن‌ها و هشف‌های ذخیره‌شده دریافت کنید. این اطلاعات شامل طول هش و الگوریتمی است که برای تولید آن استفاده شده است. این ویژگی به شما کمک می‌کند تا مطمئن شوید که دارید از بهترین روش‌ها برای هشی کردن پاسوردهای خود استفاده می‌کنید و می‌توانید این اطلاعات را در پروژه‌ی خود مدیریت کنید.

استفاده از HashManager::info() بسیار ساده است و شما می‌توانید با یک خط کد به این اطلاعات دسترسی داشته باشید. به همین دلیل، ما در اینجا یک مثال عملی برای استفاده از این متد خواهیم داشت که می‌تواند برای شما در پروژه‌هایتان مفید باشد.

در نهایت، توجه داشته باشید که امنیت داده‌ها در دنیای وب بسیار اهمیت دارد و با استفاده از روش‌های هشی، می‌توانید علاوه بر امنیت، عملکرد بهتری هم داشته باشید. بیایید ببینیم چطور می‌توانیم از این قابلیت استفاده کنیم.

📌 کد نمونه

// دسترسی به اطلاعات هشه‌ها
$hashInfo = Hash::info($hashedPassword);

// نمایش اطلاعات
return response()->json($hashInfo);


📌 توضیحات کد

▪️ $hashInfo = Hash::info($hashedPassword);: این خط با استفاده از متد info()، اطلاعات مربوط به هشه‌ی پسورد مورد نظر را ذخیره می‌کند. در اینجا $hashedPassword متغیری است که فرض می‌کنیم قبلاً هشی شده است.

▪️ return response()->json($hashInfo);: این خط اطلاعات هشه دریافت شده را به فرمت JSON برمی‌گرداند که می‌توانید آن را در فرانت‌اند یا جاهای دیگر استفاده کنید.



👈 مشاهده در مینی لرن [ کلیک کنید ] 👉

#Laravel #لاراول #Laravel #هش #Hash #امنیت #Security
تابع network_site_url() در وردپرس



📌 آشنایی با تابع network_site_url() در وردپرس
تابع network_site_url() یکی از توابع مهم و مفید در وردپرس است که به شما کمک می‌کند URL سایت شبکه را دریافت کنید. به عبارتی، این تابع به شما امکان می‌دهد تا به URL سایت اصلی شبکهٔ وردپرس دسترسی پیدا کنید. معمولاً در هنگام توسعه وب‌سایت‌های چنددسته‌ای (Multisite)، نیاز به داشتن URL سایت اصلی احساس می‌شود و این تابع در آن زمان به کمک شما می‌آید.

شاید برای شما سوال پیش بیاید که تفاوت network_site_url() با سایر توابع مانند site_url() چیست؟ در حالی که site_url() URL یک سایت خاص را برمی‌گرداند، network_site_url() URL سایت اصلی شبکه را برمی‌گرداند. این ویژگی به ویژه در پروژه‌های بزرگ و پیچیده ای که شامل چندین سایت هستند، بسیار مهم است.

شما می‌توانید از این تابع وقتی که به URL سایت شبکه نیاز دارید، استفاده کنید. به عنوان مثال، اگر شما یک افزونه یا تم توسعه می‌دهید که نیاز به دسترسی به منابع سایت اصلی دارد، می‌توانید از این تابع بهره‌برداری کنید. آن هم با قابلیت پشتیبانی از چندین سایت، کاربرد آن دوچندان می‌شود!

استفاده از network_site_url() بسیار ساده است و تنها کافی است تابع را صدا کرده و در هر جا که نیاز دارید استفاده کنید.

📌 نمونه کد

$network_url = network_site_url();
echo $network_url;


📌 توضیح کد
در اینجا خط به خط کد را توضیح می‌دهیم:


▪️ $network_url = network_site_url();
این خط تابع network_site_url() را صدا زده و نتیجه را در متغیر $network_url ذخیره می‌کند.

▪️ echo $network_url;
در این خط، متغیر $network_url که شامل URL سایت شبکه است، به خروجی ارسال می‌شود تا قابل مشاهده باشد.



👈 مشاهده در مینی لرن [ کلیک کنید ] 👉

#Wordpress #وردپرس #functions #multisite #wordpress_development #development
متد changeset_uuid() در کلاس WP_Customize_Manager



📌 مروری بر کلاس WP_Customize_Manager::changeset_uuid()
در طراحی و توسعه وردپرس، یکی از جنبه‌های مهمی که بسیاری به آن توجه می‌کنند، قابلیت تنظیمات سفارشی و مدیریت بهینه آن‌هاست. کلاس WP_Customize_Manager ناسخه قابل توجهی در این زمینه دارد. یکی از متدهای مورد استفاده در این کلاس، متد changeset_uuid() است که به ما کمک می‌کند تا یک شناسه یکتا برای تغییرات تنظیمات سفارشی ایجاد کنیم. این شناسه به صورت یک رشته یکتا از حروف و اعداد تولید می‌شود و به کاربران و توسعه‌دهندگان این اجازه را می‌دهد که تغییرات خود را به راحتی مدیریت کنند.

با استفاده از changeset_uuid() می‌توانید اطمینان حاصل کنید که هیچ‌گاه دو مجموعه تغییرات به طور همزمان با یک شناسه مشابه ثبت نمی‌شوند. این ویژگی، به ویژه هنگامی که چندین کاربر به صورت هم‌زمان در حال ویرایش تنظیمات یک وب‌سایت هستند، بسیار مهم است. فکر کنید که ممکن است چندین ویرایشگر به تنظیمات قالب یا افزونه‌ها دسترسی داشته باشند. با وجود changeset_uuid()، هر یک به شناسه خاص خود دسترسی خواهند داشت.

علاوه بر این، به کمک این متد می‌توانید سوابق تغییرات در تنظیمات سفارشی را به سادگی ردیابی کنید. به این معنا که در صورتی که بخواهید به نسخه قبلی تنظیمات بازگردید یا بدانید چه تغییراتی در یک زمان خاص ایجاد شده‌اند، می‌توانید به آسانی از شناسه یکتای تولید شده استفاده کنید.

در نهایت، استفاده از این کلاس و متدها در توسعه پلاگین‌ها و تم‌های سفارشی وردپرس یک روش عالی برای تامین سازگاری با ویژگی های مدرن و از همه مهمتر بهره‌وری در توسعه است. حالا بیایید نگاهی به کدهای مربوط به این متد بیندازیم.
// ایجاد یک نمونه از کلاس WP_Customize_Manager
$customize_manager = new WP_Customize_Manager();

// دریافت شناسه یکتای مجموعه تغییرات
$changeset_uuid = $customize_manager->changeset_uuid();

// نمایش شناسه یکتا
echo esc_html( $changeset_uuid );


📌 توضیحات کد
📌 1. ایجاد یک نمونه از کلاس WP_Customize_Manager
در این خط، ما یک نمونه از کلاس WP_Customize_Manager ایجاد می‌کنیم تا بتوانیم به متدهای آن دسترسی داشته باشیم.

📌 2. دریافت شناسه یکتای مجموعه تغییرات
در این خط، ما با استفاده از متد changeset_uuid()، یک شناسه یکتا برای مجموعه تغییرات دریافت می‌کنیم.

📌 3. نمایش شناسه یکتا
در آخر، شناسه یکتا را با استفاده از تابع esc_html() به نمایش می‌گذاریم تا از امنیت آن نیز اطمینان حاصل کنیم.


👈 مشاهده در مینی لرن [ کلیک کنید ] 👉

#Wordpress #وردپرس #WP_Customize_Manager #تغییرات_سفارشی #مدیریت_تنظیمات #برنامه_نویسی_وردپرس
عناصر و تگ‌های اسکریپت در HTML



در دنیای توسعه وب، استفاده از تگ‌های اسکریپت اهمیت بسیاری دارد چرا که به ما امکان می‌دهد تا کدهای جاوااسکریپت را در صفحات HTML خود اجرا کنیم. این نوع تعامل باعث می‌شود وب‌سایت‌ها بیشتر پویا شوند و تجربه کاربری بهتری فراهم شود. در این مقاله، قصد داریم مفهوم و کاربرد تگ‌های اسکریپت در HTML را با جزئیات بیشتری بررسی کنیم و نحوه درست استفاده از آن‌ها را توضیح دهیم.

تگ <script> یکی از تگ‌های بسیار مهم در HTML است که با استفاده از آن می‌توانید کدهای جاوااسکریپت را به صفحه وب خود اضافه کنید. این کدها می‌توانند به صورت داخلی، خارجی و یا حتی ماژول‌وار وارد شوند. شیوه‌هایی که می‌توانید از تگ اسکریپت استفاده کنید، به شما انعطاف بیشتری برای کنترل و مدیریت اسکریپت‌ها در وب‌سایت‌تان می‌دهد.

زمانی که نیاز دارید محتوای صفحه وب‌تان را پویا کنید، تگ <script> به کمک شما می‌آید. به طور مثال می‌توانید داده‌های کاربران را واکشی کنید، تغییرات آنی در صفحه انجام دهید و یا حتی از کتابخانه‌های جاوااسکریپت مثل React و Angular استفاده کنید. کاربردهای این تگ بسیار گسترده و متنوع هستند.

نکته‌ای که باید به آن توجه کنید این است که محل قرارگیری تگ <script> در سند HTML می‌تواند بر روی نحوه اجرای کدها تأثیر بگذارد. به طور معمول، بهتر است این تگ را در پایین صفحه و قبل از بستن تگ </body> قرار دهید تا صفحات به درستی لود شوند و تجربه کاربری خوبی ارائه دهند.
<html>
<head>
<title>Sample Page</title>
</head>
<body>
<h2>Welcome to My Website</h2>
<p>This is a paragraph.</p>
<script>
alert('Hello, World!');
</script>
</body>
</html>


📌 توضیح خط به خط کد


<html>: این تگ آغازین سند HTML است که کل محتوای وب را در بر می‌گیرد.

<head>: این تگ شامل اطلاعات متا، لینک به فایل‌های CSS و عنوان صفحه است.

<title>: این تگ عنوان صفحه را تنظیم می‌کند که در نوار عنوان مرورگر نمایش داده می‌شود.

<body>: این تگ شامل محتوای اصلی صفحه وب است که کاربر مشاهده می‌کند.

<h2>: این تگ برای عنوان‌های فرعی استفاده می‌شود و در اینجا به عنوان خوش‌آمدگویی به وب‌سایت استفاده شده است.

<p>: این تگ برای تعریف پاراگرافی از متن بهره‌برداری می‌شود.

<script>: این تگ یک دستور ساده جاوااسکریپت برای نمایش پیام هشدار در هنگام بارگذاری صفحه را اجرا می‌کند.


👈 مشاهده در مینی لرن [ کلیک کنید ] 👉

#HTML #HTML #تگ‌های_اسکریپت #جاوااسکریپت #HTML_Elements #HTML5 #داینامیک_وب‌سایت‌ها #JavaScript
تابع rest_get_url_prefix() در وردپرس



📌 درک توابع WordPress و rest_get_url_prefix()
سلام دوستان! امروز می‌خواهیم در مورد تابع rest_get_url_prefix() در WordPress صحبت کنیم. این تابع در هستهٔ WordPress وجود دارد و به ما کمک می‌کند تا URL پایهٔ REST API را به راحتی دریافت کنیم. API یا رابط برنامه‌نویسی برنامه، یکی از مهم‌ترین بخش‌های هر سیستم مدیریت محتوا است و WordPress نیز از آن مستثنی نیست.

یکی از دلایلی که ما از REST API استفاده می‌کنیم، این است که به راحتی می‌توانیم به داده‌های سایت خود دسترسی داشته باشیم و آن‌ها را در جاهای مختلف استفاده کنیم. برای مثال، می‌توانیم اطلاعات پست‌ها، کاربران، و نظرات را بدون نیاز به بارگذاری کامل صفحه، تنها با یک درخواست ساده به سرور دریافت کنیم.

حالا بیایید بیشتر به rest_get_url_prefix() بپردازیم. این تابع معمولاً در فایل‌های functions.php یا هر جایی که نیاز دارید URL را دریافت کنید، مورد استفاده قرار می‌گیرد. به‌طور کلی، این تابع یک رشته را برمی‌گرداند که حاوی پیشوند URL برای دسترسی به REST API است.

به‌عنوان مثالی ساده، فرض کنید می‌خواهید با استفاده از REST API داده‌های پست‌های اخیر سایت خود را دریافت کنید. به کمک این تابع، می‌توانید URL درست را بسازید و سپس از آن برای ارسال درخواست‌های مختلف استفاده کنید. حالا بیایید نگاهی به کد بیندازیم.

📌 مثال کد


// دریافت URL پایه REST API
$url_prefix = rest_get_url_prefix();

// نمایش URL در محیط PHP
echo $url_prefix;


📌 توضیحات کد
کد 1: $url_prefix = rest_get_url_prefix();

در این خط، ما از تابع rest_get_url_prefix() استفاده می‌کنیم تا URL پایهٔ REST API را دریافت کنیم و آن را در متغیر $url_prefix ذخیره می‌کنیم.

کد 2: echo $url_prefix;

در این خط، ما مقدار متغیر $url_prefix را چاپ می‌کنیم تا ببینیم چه URLی را دریافت کرده‌ایم.


👈 مشاهده در مینی لرن [ کلیک کنید ] 👉

#Wordpress #وردپرس #REST_API #توابع_وردپرس #برنامه‌نویسی_PHP #رابط_برنامه‌نویسی
توضیحات در مورد تابع prepare_item_for_response() در وردپرس



📌 توضیحات در مورد تابع prepare_item_for_response() در کاریردهای REST API وردپرس
در وردپرس، REST API یک رابط کاربری مهم است که به توسعه‌دهندگان اجازه می‌دهد تا با داده‌های وردپرس از طریق HTTP تعامل داشته باشند. یکی از بخش‌های مهم این API مربوط به کنترلرها است که وظیفه‌ی مدیریت داده‌ها و پردازش آن‌ها را بر عهده دارند. یکی از این کنترلرها، کنترلر WP_REST_Templates_Controller است که به طور خاص برای مدیریت قالب‌ها طراحی شده است.

تابع prepare_item_for_response() این کنترلر مسئول آماده‌سازی داده‌های قالب برای ارسال به کلاینت است. این تابع بخشی از عملیات پردازش داده‌ها است که تضمین می‌کند اطلاعات درست و بافرمت مناسب به درخواست‌ کنندگان بازگردانده شود. به عبارت دیگر، این تابع به ما کمک می‌کند تا داده‌های دریافتی را به یک شکل استاندارد شده و قابل استفاده تبدیل کنیم.

این تابع معمولاً در پاسخ به درخواست‌های GET، POST و دیگر روش‌های HTTP فراخوانی می‌شود تا اطمینان حاصل کند که اطلاعات قالب به درستی و به صورت ساختار یافته بازگردانی شده‌اند. آماده‌سازی اطلاعات به طور معمول شامل کارهایی مثل تنظیم فرمت تاریخ، آماده‌سازی مسیرهای URL و اطمینان از این است که تمام ادعاهای جداگانه در سطح قابل درک برای کلاینت بازگشایی شوند.

به طور کلی، استفاده کردن از این تابع نه تنها تجربه کاربری را بهبود می‌بخشد، بلکه باعث می‌شود کد ما منظم‌تر و قابل نگهداری‌تر باشد. فعلاً بیایید نگاهی به نحوه کارکرد این تابع در کد بیندازیم و ببینیم چگونه می‌توانیم از آن در پروژه‌هایمان استفاده کنیم.

📌 نمونه کد تابع prepare_item_for_response()

public function prepare_item_for_response( $item, $request ) {
$data = array(
'id' => $item->ID,
'title' => $item->post_title,
'content' => $item->post_content,
);
return rest_ensure_response( $data );
}


📌 توضیحات خط به خط کد

public function prepare_item_for_response( $item, $request ) {
این خط تعریف تابع است که دو ورودی $item و $request را می‌گیرد.

$data = array(
در اینجا یک آرایه جدید به نام $data ایجاد می‌شود که شامل اطلاعاتی است که می‌خواهیم به کاربر نهایی برگردانیم.

'id' => $item->ID,
در این خط، شناسه قالب را به آرایه اضافه می‌کنیم که برای شناسایی هر الگو منحصر به فرد است.

'title' => $item->post_title,
عنوان قالب را به آرایه اضافه می‌کنیم تا کاربر بتواند با عنوان قالب آشنا شود.

'content' => $item->post_content,
محتوای قالب نیز به آرایه اضافه می‌شود تا در پاسخ به کاربر برگردانده شود.

return rest_ensure_response( $data );
در نهایت، داده‌های آماده‌شده را در فرمت پاسخ REST برمی‌گردانیم تا کلاینت بتواند از آن استفاده کند.



👈 مشاهده در مینی لرن [ کلیک کنید ] 👉

#Wordpress #وردپرس #REST_API #توسعه_وردپرس #کنترلرها #کد_نویسی
کلاس ScheduleInterruptCommand در لاراول 11



📌 شرح کلاس ScheduleInterruptCommand در لاراول 11
لاراول یکی از محبوب‌ترین فریم‌ورک‌های PHP است که به توسعه‌دهندگان این امکان را می‌دهد تا برنامه‌های وب قدرتمند و مقیاس‌پذیر بسازند. یکی از قابلیت‌های جالب لاراول، مدیریت زمانبندی تسک‌ها است که به شما اجازه می‌دهد تسک‌ها را به صورت خودکار در زمان‌های مشخص اجرا کنید. در لاراول 11، یک کلاس جدید به نام ScheduleInterruptCommand وارد شده است که نقش مهمی در مدیریت این تسک‌ها دارد.

کلاس ScheduleInterruptCommand برای interrupt (قطعه‌قطعه کردن) تسک‌های در حال اجرا طراحی شده است. از آنجایی که ممکن است نیاز داشته باشید که تسک‌ها در زمان خاصی متوقف شوند، این کلاس به سادگی این کار را انجام می‌دهد و فرآیندهای در حال اجرا را کنترل می‌کند. این قضیه به خصوص در سناریوهای پیچیده‌ای که نیاز به دقت و زمان‌بندی بالایی دارند، بسیار مفید است.

در ابتدای استفاده از این کلاس، باید آن را در پروژه خود فراخوانی کنیم. این کار معمولاً در فایل‌های مربوط به تسک‌های زمانبندی شده انجام می‌شود. برای استفاده از ScheduleInterruptCommand، شما به آرگومان‌های خاصی نیاز دارید که توضیحات مربوط به آن‌ها را در ادامه آورده‌ایم.

حالا بیایید نگاهی به کد نمونه بندازیم تا ببینیم چگونه می‌توانیم از کلاس ScheduleInterruptCommand استفاده کنیم. این کد نه تنها مفید است بلکه فرمت و ساختار آن نیز يجبی کند که به راحتی در پروژه‌های عملی استفاده شود.
// کد نمونه برای استفاده از ScheduleInterruptCommand
$command = new ScheduleInterruptCommand($taskId);
$command->execute();


📌 توضیحات کد
در اینجا، ما یک متغیر به نام $command ایجاد می‌کنیم که یک شیء از کلاس ScheduleInterruptCommand است.

برای ایجاد این شئ، ما به یک شناسه تسک (شاید $taskId) نیاز داریم که باید به عنوان آرگومان به سازنده کلاس ارسال کنیم.

پس از ایجاد شیء $command، از متد execute() برای انجام عملیات توقف تسک استفاده می‌کنیم.

در نتیجه، با یک کد ساده و کارا می‌توانیم مدیریت بهتری بر روی تسک‌های در حال اجرا در لاراول داشته باشیم.


👈 مشاهده در مینی لرن [ کلیک کنید ] 👉

#Laravel #لاراول #Laravel #زمان‌بندی_تسک‌ها #Task_Scheduling #کلاس‌های_لاراول #Laravel_Classes
بررسی متد set_body() در کلاس WP_REST_Request



📌 آشنایی با کلاس WP_REST_Request و متد set_body()
سلام! امروز می‌خواهیم درباره یکی از کلاس‌های مهم در WordPress به نام WP_REST_Request صحبت کنیم. به طور کلی، این کلاس به ما اجازه می‌دهد که درخواست‌های REST API را مدیریت کنیم. با استفاده از این کلاس، می‌توانیم به راحتی داده‌ها را ارسال و دریافت کنیم.

متد set_body() در این کلاس وجود دارد که برای مشخص کردن بدنه یک درخواست استفاده می‌شود. این بدنه می‌تواند شامل داده‌هایی باشد که می‌خواهیم در درخواست ارسال کنیم. به عنوان مثال، زمانی که داده‌ای را به سرور ارسال می‌کنیم، بدنه درخواست حاوی اطلاعاتی است که در آن وجود دارد.

استفاده از این متد در زمانی کاربرد دارد که شما نیاز دارید تا اطلاعات خاصی را در زمان ارسال درخواست به سرور همراه با آن ارسال کنید. این اطلاعات معمولاً به صورت JSON فرمت می‌شوند. بنابراین، هر زمان که احساس کردید که باید داده‌ای را به API ارسال کنید، می‌توانید از set_body() استفاده کنید.

در ادامه، یک مثال ساده برای شما می‌آوریم که چگونه می‌توانید از set_body() استفاده کنید. این مثال، در واقع نشان می‌دهد که چطور می‌توانیم یک درخواست جدید بسازیم و بدنه آن را تنظیم کنیم.

📌 مثال کد برای استفاده از متد set_body()

$request = new WP_REST_Request();
$request->set_body( json_encode( [ 'key' => 'value' ] ) );


📌 توضیح خط به خط کد
خط 1: $request = new WP_REST_Request();
این خط یک نمونه جدید از کلاس WP_REST_Request ایجاد می‌کند که به ما امکان می‌دهد یک درخواست جدید بسازیم.
خط 2: $request->set_body( json_encode( [ 'key' => 'value' ] ) );
در این خط، ما بدنه درخواست را با استفاده از متد set_body() تنظیم می‌کنیم. داده‌ها به فرمت JSON تبدیل می‌شوند تا به طور صحیح ارسال شوند.

👈 مشاهده در مینی لرن [ کلیک کنید ] 👉

#Wordpress #WordPress #WP_REST_Request #REST_API #PHP #برنامه‌نویسی_وب
آشنایی با متد reset_default_labels در کلاس WP_Taxonomy



📌 آشنایی با متد reset_default_labels در کلاس WP_Taxonomy
سلام! امروز می‌خواهیم در مورد متد reset_default_labels در کلاس WP_Taxonomy در وردپرس صحبت کنیم. این متد یکی از ابزارهای مهمی است که ما می‌توانیم در طراحی و توسعه پلاگین‌ها و تم‌های وردپرسی استفاده کنیم. شاید برایتان سوال باشد که این متد چه کاربردی دارد؟

به زبان ساده، reset_default_labels وظیفه بازنشانی برچسب‌های پیش‌فرض یک دسته‌بندی یا برچسب را بر عهده دارد. تصور کنید که شما یک طبقه‌بندی سفارشی ایجاد کرده‌اید و برچسب‌های خاصی برای آن تنظیم کرده‌اید، اما به دلایلی می‌خواهید به تنظیمات اولیه برگردید. این متد به شما این امکان را می‌دهد که به راحتی برچسب‌های پیش‌فرض را برای کلاس خود بازنشانی کنید.

این متد به طور خودکار برای هر نوع طبقه‌بندی موجود در وردپرس کار می‌کند. به عبارت دیگر، شما می‌توانید این متد را برای برچسب‌ها، دسته‌بندی‌ها یا حتی برای طبقه‌بندی‌های سفارشی خودتان استفاده کنید. در واقع، این فرآیند به شما کمک می‌کند که در صورت نیاز به تغییرات، تنظیمات اولیه را دوباره برگردانید و به راحتی از برچسب‌های پیش‌فرض استفاده کنید.

همچنین، با استفاده از این متد، دیگر نیازی به نگرانی در مورد تغییرات اشتباهی که ممکن است در تنظیمات انجام داده باشید، نخواهید داشت. به همین دلیل، این متد بسیار مفید و کارآمد است. حالا بیایید نگاهی به یک مثال عملی بیندازیم تا ببینیم چگونه می‌توانیم از این متد استفاده کنیم.

📌 مثال کاربردی از reset_default_labels

// ایجاد یک طبقه‌بندی سفارشی
function my_custom_taxonomy() {
register_taxonomy(
'my_taxonomy',
'post',
array(
'labels' => array(
'name' => __( 'My Taxonomy' ),
'singular_name' => __( 'My Taxonomy Item' )
),
'public' => true,
'hierarchical' => true
)
);
}
add_action('init', 'my_custom_taxonomy');

// استفاده از reset_default_labels
function reset_my_taxonomy_labels() {
$taxonomy = 'my_taxonomy';
global $wp_taxonomies;
if ( isset( $wp_taxonomies[$taxonomy] ) ) {
$wp_taxonomies[$taxonomy]->reset_default_labels();
}
}
add_action('init', 'reset_my_taxonomy_labels');


📌 توضیحات کد
در کد بالا، ابتدا با استفاده از تابع register_taxonomy یک طبقه‌بندی سفارشی به نام my_taxonomy ایجاد کردیم.

سپس یک تابع به نام reset_my_taxonomy_labels تعریف کردیم که در آن می‌خواهیم برچسب‌های پیش‌فرض این طبقه‌بندی را بازنشانی کنیم.

با استفاده از global $wp_taxonomies، به لیست تمامی طبقه‌بندی‌ها دسترسی پیدا کردیم. سپس با بررسی اینکه آیا my_taxonomy در آن لیست وجود دارد یا نه، متد reset_default_labels را برای بازنشانی برچسب‌ها فراخوانی کردیم.

در نهایت، با استفاده از add_action تابع reset_my_taxonomy_labels را به init اضافه کردیم تا این تنظیمات در زمان مناسب بارگذاری شوند.


👈 مشاهده در مینی لرن [ کلیک کنید ] 👉

#Wordpress #وردپرس #WP_Taxonomy #برچسب‌های_پیش‌فرض #برنامه‌نویسی_وردپرس #PLugins_وردپرس
بررسی تابع match_domain() در کلاس Requests_SSL


سلام! امروز می‌خواهیم به بررسی تابع match_domain() در کلاس Requests_SSL بپردازیم. این تابع یکی از اجزای کلیدی در مدیریت اتصالات SSL در وردپرس است. اگر شما هم از وردپرس استفاده می‌کنید، حتما با اتصالات امنیتی و مهم بودن آن‌ها آشنا هستید. هدف این تابع بررسی و مطابقت دامنه‌ها با اعتبارسنجی SSL است.

اول از همه، باید بدانید که SSL (Secure Sockets Layer) به ما کمک می‌کند تا اتصال امن‌تری به وب‌سایت‌ها داشته باشیم. وقتی شما به یک وب‌سایت برای انجام عملیات حساس مثل خرید مراجعه می‌کنید، وجود SSL بسیار ضروری است. این تابع در وردپرس برای اطمینان از این که دامنه درخواست شده مطابق با گواهی SSL موجود است، استفاده می‌شود.

به عنوان مثال، فرض کنید شما یک وب‌سایت دارید و می‌خواهید با HTTPS ارتباط برقرار کنید، در اینجاست که این تابع به کار می‌آید. این تابع بررسی می‌کند که آیا دامنه‌ای که کاربر در حال تلاش برای اتصال به آن است با دامنه‌ی گواهی SSL مطابقت دارد یا خیر. اگر دامنه‌ها مطابقت نداشته باشند، در این صورت اتصال به درستی برقرار نخواهد شد و امنیت وب‌سایت شما زیر سوال می‌رود.

شاید در حال حاضر سوال پیش بیاید که چگونه می‌توانیم از این تابع در کد خود استفاده کنیم. ما یک نمونه کد جالب برای شما آماده کرده‌ایم که نشان می‌دهد چگونه می‌توان از این تابع استفاده کرد و آن را در عمل بررسی کرد.

📌 نمونه کد

$ssl = new Requests_SSL();
$is_match = $ssl->match_domain($requested_domain, $ssl_certificate_domain);
if ($is_match) {
echo 'دامنه مطابقت دارد!';
} else {
echo 'هشدار: دامنه مطابقت ندارد!';
}


📌 توضیحات کد
کد: $ssl = new Requests_SSL();
این خط یک شیء از کلاس Requests_SSL ایجاد می‌کند.
کد: $is_match = $ssl->match_domain($requested_domain, $ssl_certificate_domain);
در اینجا تابع match_domain() فراخوانی می‌شود تا بررسی کند آیا دامنه درخواست شده با دامنه گواهینامه SSL مطابقت دارد یا نه.
کد: if ($is_match) {...
اگر دامنه‌ها مطابقت داشتند، این بخش اجرا می‌شود و پیغامی مبنی بر مطابقت دامنه نمایش می‌دهد.
کد: else {...}
اگر دامنه‌ها مطابقت نداشته باشند، این بخش اجرا شده و هشدار مربوطه را به کاربر نشان می‌دهد.

👈 مشاهده در مینی لرن [ کلیک کنید ] 👉

#Wordpress #وردپرس #کلاس_Requests_SSL #توسعه_وب #SSL #امنیت_وب