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

در این آموزش، به زبان کاملاً ساده و بدون نیاز به دانش کدنویسی، یاد میگیرید چطور:
- یک فیلد لینک ویدیو به فرم افزودن و ویرایش دستهبندی در پنل مدیریت اضافه کنید.
- لینک وارد شده را در دیتابیس ذخیره کنید.
- ویدیو را در صفحه دستهبندی در سایت خود نمایش دهید.
قبل از شروع افزودن فیلد لینک ویدیو به دستهبندی وردپرس چیزهایی باید بدانید؟
- این آموزش برای کاربران وردپرس است که میخواهند بدون استفاده از افزونه، امکانات سفارشی به سایت خود اضافه کنند.
- برای انجام این مراحل، فقط باید بتوانید کدها را در فایلهای قالب وردپرس خود جایگذاری کنید.
- حتماً قبل از ویرایش فایلهای قالب، از سایت خود بکآپ بگیرید.
مرحله اول: افزودن فیلد لینک ویدیو به فرم افزودن دستهبندی
وقتی در پنل مدیریت وردپرس به بخش نوشتهها > دستهها میروید و میخواهید یک دسته جدید بسازید، میخواهیم فیلدی به نام «لینک ویدیو» را به فرم اضافه کنیم.
add_action('category_add_form_fields', function () {
?>
<div class="form-field">
<label for="category_video_url">لینک ویدیو</label>
<input name="category_video_url" id="category_video_url" type="text" value="" placeholder="https://example.com/video.mp4">
<p class="description">لینک ویدیوی مرتبط با این دستهبندی (مثلاً یوتیوب، آپارات یا لینک مستقیم فایل MP4)</p>
</div>
<?php
});
چگونه از این کد استفاده کنیم؟
۱-وارد پنل وردپرس شوید.
۲-به مسیر نمایش > ویرایشگر قالب بروید.
۳-فایل functions.php قالب فعال سایت خود را باز کنید.
۴-کد بالا را در انتهای فایل جایگذاری کنید و ذخیره بزنید.
حالا اگر به مسیر نوشتهها > دستهها بروید، هنگام افزودن یک دسته جدید، فیلد جدیدی به نام “لینک ویدیو” میبینید.
مرحله دوم: نمایش فیلد لینک ویدیو در فرم ویرایش دستهبندی وردپرس
در مرحله قبل یاد گرفتیم که فیلد لینک ویدیو را به فرم «افزودن دسته» اضافه کنیم. اما زمانی که بخواهیم یک دسته را ویرایش کنیم (مثلاً تغییر نام یا لینک ویدیو)، باید همان فیلد در فرم ویرایش نیز نمایش داده شود تا کاربر بتواند لینک جدید وارد کند یا لینک قبلی را ویرایش کند.
add_action('category_edit_form_fields', function ($term) {
$video_url = get_term_meta($term->term_id, 'category_video_url', true);
?>
<tr class="form-field">
<th scope="row"><label for="category_video_url">لینک ویدیو</label></th>
<td>
<input name="category_video_url" id="category_video_url" type="text" value="<?php echo esc_attr($video_url); ?>" style="width: 100%;" />
<p class="description">لینک ویدیوی مرتبط با این دسته (مثلاً یوتیوب، آپارات یا فایل MP4)</p>
</td>
</tr>
<?php
});
- category_edit_form_fields یک هوک وردپرس است که اجازه میدهد هنگام ویرایش یک taxonomy (مثل دسته) فیلدهای سفارشی نمایش داده شوند.
- در این کد، مقدار لینک قبلی که در دیتابیس ذخیره شده (اگر وجود داشته باشد) نمایش داده میشود تا قابل ویرایش باشد.
- از get_term_meta استفاده کردیم تا اطلاعات متای دسته را بخوانیم.
چگونه از این کد استفاده کنیم؟
- مثل مرحله قبل، وارد فایل functions.php شوید.
- این کد را بعد از کد مرحله اول قرار دهید.
- فایل را ذخیره کنید.
حالا اگر به مسیر نوشتهها > دستهها بروید و روی “ویرایش” یکی از دستهها کلیک کنید، خواهید دید که فیلد “لینک ویدیو” در فرم ویرایش ظاهر شده است و حتی اگر لینکی قبلاً ثبت شده باشد، آن را نشان میدهد.
مرحله سوم: ذخیرهسازی لینک ویدیو در دیتابیس وردپرس
تا الان فیلد لینک ویدیو رو توی فرمهای “افزودن” و “ویرایش” دستهبندیها اضافه کردیم، اما وردپرس هنوز نمیدونه با این اطلاعات چیکار کنه. باید کاری کنیم که وقتی دسته ذخیره یا ویرایش میشه، مقدار فیلد لینک ویدیو در دیتابیس ذخیره بشه.
add_action('created_category', function ($term_id) {
if (isset($_POST['category_video_url'])) {
update_term_meta($term_id, 'category_video_url', sanitize_text_field($_POST['category_video_url']));
}
});
add_action('edited_category', function ($term_id) {
if (isset($_POST['category_video_url'])) {
update_term_meta($term_id, 'category_video_url', sanitize_text_field($_POST['category_video_url']));
}
});
- created_category برای ذخیره اطلاعات فیلد موقع ساخت دسته جدید استفاده میشه.
- edited_category برای ذخیره اطلاعات فیلد موقع ویرایش دسته موجود استفاده میشه.
- sanitize_text_field باعث میشه فقط متن خالص (بدون کد خطرناک) ذخیره بشه.
- update_term_meta برای ذخیره داده به متای دستهبندیها استفاده میشه (مشابه post_meta ولی برای terms).
چگونه از این کد استفاده کنیم؟
- باز هم فایل functions.php قالب رو باز کن.
- این کد رو در ادامه دو مرحله قبل اضافه کن.
- ذخیره رو بزن.
الان دیگه وردپرس لینک وارد شده در فیلد ویدیو رو کاملاً امن و درست ذخیره میکنه.
مرحله چهارم: نمایش ویدیو در صفحه دستهبندی سایت
الان ما لینک ویدیو رو داریم، فقط باید کاری کنیم که زمانی که بازدیدکننده وارد صفحه یک دستهبندی میشه، ویدیو مرتبط با اون دسته نمایش داده بشه.
<?php
// این کد را در فایل category.php یا archive.php قالب خود قرار دهید
if (is_category()) {
$term = get_queried_object();
$video_url = get_term_meta($term->term_id, 'category_video_url', true);
if (!empty($video_url)) {
echo '<div class="category-video" style="margin-bottom: 30px;">';
echo '<h2>ویدیوی مرتبط با این دسته</h2>';
// بررسی نوع لینک برای نمایش مناسب
if (strpos($video_url, 'youtube.com') !== false || strpos($video_url, 'youtu.be') !== false) {
// لینک یوتیوب
parse_str(parse_url($video_url, PHP_URL_QUERY), $youtube_params);
$video_id = $youtube_params['v'] ?? '';
if ($video_id) {
echo '<iframe width="100%" height="400" src="https://www.youtube.com/embed/' . esc_attr($video_id) . '" frameborder="0" allowfullscreen></iframe>';
}
} elseif (strpos($video_url, 'aparat.com') !== false) {
// لینک آپارات
preg_match('/video\/([a-zA-Z0-9]+)/', $video_url, $matches);
if (!empty($matches[1])) {
echo '<iframe width="100%" height="400" src="https://www.aparat.com/video/video/embed/videohash/' . esc_attr($matches[1]) . '/vt/frame" frameborder="0" allowfullscreen></iframe>';
}
} else {
// لینک مستقیم MP4 یا سایر پلیرها
echo '<video width="100%" height="400" controls><source src="' . esc_url($video_url) . '" type="video/mp4">مرورگر شما از پخش ویدیو پشتیبانی نمیکند.</video>';
}
echo '</div>';
}
}
?>
کجا قرار بدیم این کد رو؟
- وارد فایلهای قالب خود بشید (از طریق هاست یا پنل وردپرس).
- دنبال فایل category.php یا archive.php بگردید. (اگر category.php وجود داشت، از اون استفاده کن. اگر نبود، archive.php رو ویرایش کن.)
- این کد رو قبل از حلقه وردپرس قرار بده. مثلاً:
<?php
// نمایش ویدیو قبل از لیست پستها
// سپس حلقه پستها شروع میشود
if (have_posts()) :
while (have_posts()) : the_post();
// ...
endwhile;
endif;
?>
در این آموزش، یاد گرفتیم چطور یک قابلیت حرفهای و سفارشی به دستهبندیهای وردپرس اضافه کنیم؛ یعنی امکان قرار دادن و نمایش ویدیو برای هر دسته. این ویدیو میتونه از یوتیوب، آپارات یا حتی یک فایل MP4 باشه. با اضافه کردن یک فیلد ساده در پنل مدیریت، مدیر سایت میتونه بهراحتی برای هر دسته، یک ویدیو معرفی یا آموزشی ثبت کنه و در صفحه فرانتاند به بازدیدکننده نمایش بده. این قابلیت به جذابیت بصری صفحات دستهبندی کمک میکنه، باعث افزایش تعامل کاربران میشه و تجربه کاربری رو به سطح بالاتری میبره،اون هم بدون نیاز به هیچ افزونهای و فقط با چند خط کد ساده و قابل کنترل.
شاد و پیروز باشید.