چطوری میشه

چگونه یک تصویر ویژه از URL در وردپرس اضافه کنیم

چگونه یک تصویر ویژه از URL در وردپرس اضافه کنیم

گاهی اوقات لازم است که به صورت پویا یک تصویر برجسته را به یک پست یا یک نوع پست سفارشی از سرور دیگری به غیر از سروری که وردپرس نصب کرده‌اید اضافه کنید. و شما با یک مشکل رایج روبرو هستید: چگونه این کار را انجام دهیم؟

البته در این مورد، باید تصویر برجسته را از سرور دوم بگیرید، آن را در سرور خود، در پوشه آپلود دانلود کرده و به پست صحیح اختصاص دهید. در مرحله اول می‌خواهیم یک پست جدید به صورت پویا ایجاد کنیم و سپس با تصویر برجسته سروکار داریم.

مرحله 1: ایجاد پست به صورت پویا

برای ایجاد پویا یک پست، باید از  استفاده کنید تابع wp_insert_post(). می‌توانید کد زیر را در عبارت «IF» قرار دهید، در غیر این صورت هر بار که صفحه‌ای بارگذاری می‌شود، یک پست جدید ایجاد می‌کند. چندان مفید نیست.

// ثبت اطلاعات پست
$post = array();
$post['post_status'] = 'انتشار';
$post['post_type'] = 'پست'; // می تواند یک CPT نیز باشد
$post['post_title'] = 'پست جدید من';
$post['post_content'] = 'محتوای پست جدید من';
$post['post_author'] = 1;

// ایجاد پست
$post_id = wp_insert_post( $post );

اجرای این کد به سادگی یک پست جدید ایجاد می کند. اکنون زمان افزودن تصویر ویژه است.

مرحله 2: تصویر ویژه را اضافه کنید

برای افزودن تصویر برجسته از یک URL، باید از برخی توابع وردپرس استفاده کنیم:

و اکنون این کد است. من برای هر عمل نظر گذاشتم تا بتوانید دقیقاً ببینید هنگام اجرای این اسکریپت چه اتفاقی می‌افتد.

// افزودن تصویر ویژه به پست
$image_url = 'http://s.wordpress.org/style/images/wp-header-logo.png'; // URL تصویر را در اینجا تعریف کنید
$image_name = 'wp-header-logo.png';
$upload_dir = wp_upload_dir(); // پوشه آپلود را تنظیم کنید
$image_data = file_get_contents($image_url); // داده های تصویر را دریافت کنید
$unique_file_name = wp_unique_filename( $upload_dir['path'], $image_name ); // نام منحصر به فرد ایجاد کنید
$filename = basename( $unique_file_name ); // نام فایل تصویری را ایجاد کنید

// مجوز پوشه را بررسی کنید و مکان فایل را تعریف کنید
if( wp_mkdir_p( $upload_dir['path'] ) ) {
    $file = $upload_dir[' مسیر'] . '/' . $filename;
}دیگر {
    $file = $upload_dir['basedir']. '/' . $filename;
}

// فایل تصویر را روی سرور ایجاد کنید
file_put_contents($file, $image_data );

// نوع فایل تصویر را بررسی کنید
$wp_filetype = wp_check_filetype( $filename, null );

// داده های پیوست را تنظیم کنید
$attachment = آرایه(
    'post_mime_type' => $wp_filetype['type']،
    'post_title' => sanitize_file_name($filename)
    'post_content' => ''،
    'post_status' => 'ارث بردن'
)

// پیوست را ایجاد کنید
$attach_id = wp_insert_attachment( $attachment, $file, $post_id );

// شامل image.php
require_once(ABSPATH . 'wp-admin/includes/image.php');

// فراداده پیوست را تعریف کنید
$attach_data = wp_generate_attachment_metadata( $attach_id, $file );

// متادیتا را به پیوست اختصاص دهید
wp_update_attachment_metadata($attach_id، $attach_data);

// و در نهایت تصویر برجسته را به پست اختصاص دهید
set_post_thumbnail($post_id, $attach_id );

نکته جالب در این کد این است که می توانید آن را در یک حلقه قرار دهید. به عنوان مثال برای وارد کردن پست ها از یک فایل CSV یا یک فایل XML. این واقعا قدرتمند و واقعا مفید است، اما یک چیز را فراموش نکنید: هرگز از این اسکریپت در فایل functions.php خود بدون قرار دادن یک برچسب شرطی استفاده نکنید، در غیر این صورت صدها پست جدید در عرض چند دقیقه ایجاد خواهید کرد!< /p>

این قطعه را مفید یافتید؟ لطفاً نظر بدهید و به ما بگویید از این قطعه چه چیزی ایجاد کرده اید!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا