هنگام کار بر روی پروژه ای که در آن ما یک گالری بسیار جالب ایجاد کردیم که کاملاً توسط پیوست های وردپرس و یک نوع پست سفارشی ساخته شده است ، نیاز به افزودن زمینه های اضافی به وردپرس پیدا کردیم بارگذار رسانه این قسمتهای اضافی به ما امکان می دهد با افزودن نام عکاس و URL آنها در هر صفحه تصویر ، به هر عکاس اعتبار بدهیم. وردپرس تصاویر را به عنوان پست در نوع پست پیوست ذخیره می کند ، بنابراین افزودن داده های متا دقیقاً مانند افزودن فیلدهای سفارشی است. از آنجا که پیوست های وردپرس فاقد رابط کاربر زمینه های سفارشی هستند ، برای جمع آوری داده های متا باید زمینه های سفارشی را به بارگذار رسانه اضافه کنیم. در این مقاله ، ما به شما نحوه افزودن زمینه های اضافی به آپلود کننده رسانه وردپرس را نشان خواهیم داد.
برای ایجاد تغییر از فیلترهای زیر استفاده خواهیم کرد: ضمیمه_محیط ها_برای_ ویرایش و پیوندهای_مصرف_ برای_ ذخیره #//>
برای پروژه ای مانند این ، ما بسیار توصیه می کنیم که یک افزونه اختصاصی سایت و کد زیر را اضافه کنید. با این حال ، همچنان می توانید کدها را در پرونده Theme.php طرح زمینه خود اضافه کنید تا کار کند.
/ ** * نام عکاس و زمینه های URL را به آپلود کننده رسانه اضافه کنید * *param آرایه $ form_fields ، فیلدهایی که باید در فرم پیوست قرار گیرند *param $ post object ، ضبط پیوست در پایگاه داده * @ form $ $ Fields ، زمینه های فرم اصلاح شده * / تابع be_attachment_field_credit ($ form_fields، $ post) { $ form_fields ['be-photographer-name'] = آرایه ( 'label' => 'نام عکاس' ، 'input' => 'متن' ، 'value' => get_post_meta ($ post-> ID ، 'be_photographer_name' ، درست است) ، 'help' => 'در صورت ارائه ، اعتبار عکس نمایش داده می شود'، ) $ form_fields ['be-photographer-url'] = آرایه ( 'label' => 'URL عکاس' ، 'input' => 'متن' ، 'value' => get_post_meta ($ post-> ID ، 'be_photographer_url' ، true) ، 'help' => 'URL عکاس را اضافه کنید' ، ) بازگشت $ form_fields؛ } افزودن_فیلتر ('زمینه های_پیوست_به_ ویرایش' ، 'اعتبار_حوزه_پیوست_شده' ، 10 ، 2)؛ / ** * مقادیر نام و URL عکاس را در آپلود کننده رسانه ذخیره کنید * *param $ post array ، داده های ارسال شده برای پایگاه داده * آرایه پیوستparam $ ، قسمتهای پیوست از فرم $ _POST * @ بازگشت $ آرایه پست ، داده های پست اصلاح شده * / عملکرد be_attachment_field_credit_save ($ ارسال ، $ پیوست) { if (Isset ($ attachment ['be-photographer-name']))) update_post_meta ($ post ['ID']، 'be_photographer_name'، $ attachment ['be-photographer-name'])؛ if (Isset ($ attachment ['be-photographer-url']))) update_post_meta ($ post ['ID']، 'be_photographer_url'، esc_url ($ attachment ['be-photographer-url']))؛ بازگشت $ post؛ } افزودن_فیلتر ('فیلد_پیوست_ برای_ ذخیره' ، 'ذخیره_ اعتبار_پیوست_فضل' ، 10 ، 2)؛ ؟>
کد بالا دو فیلد متنی به Uploader Media به نام Photographer Name و Photographer URL اضافه می کند. این را می توانید در تصویر زیر مشاهده کنید:
توضیح کد: در اولین تابع ، ما به راحتی از یک آرایه برای تعیین برچسب ، نوع ورودی ، مقدار و متن راهنما استفاده می کنیم. تابع دوم بررسی این است که آیا مقداری برای آن قسمت ها تنظیم شده است یا خیر. اگر مقدار تعیین شود ، فراداده پست به روز می شود.
اگر می خواهید فیلدها را در الگوی پیوست های خود نمایش دهید ، به سادگی کدهای زیر را در داخل حلقه جای گذاری کنید:
echo get_post_meta ($ post-> ID، 'be_photographer_url'، true)؛
اگر می خواهید قسمتهای مربوط به تصویر برجسته خود را در الگوی بایگانی یا الگوی دیگر خود نمایش دهید ، به سادگی از موارد زیر استفاده کنید:
echo get_post_meta (get_post_thumbnail_id ()، 'be_photographer_url'، true)؛
امیدواریم از این مقاله لذت برده باشید. برای کسانی که نمی دانند چگونه الگوی پیوست را ایجاد کنند ، نگران نباشید. در مقاله بعدی ، نحوه ایجاد الگوی پیوست در وردپرس را بیان خواهیم کرد.
نکته کلاه به بیل اریکسون برای نشان دادن نحوه انجام این کار.
منبع:
https://www.wpbeginner.com/wp-tutorials/how-to-add-additional-fields-to-the-wordpress-media-uploader/.