wordpress- وردپرس

افزودن Theme activation / deactivation Hook

در وردپرس اکشن های زیادی برای developer ها موجوده که میتونه برای استفاده از اونها در بهتر کردن تم ها یا نوشتن پلاگین ها مورد استفاده قرار بگیره. ولی جای یکی از اونها خالیه که شاید یکی از به دردبخورترین ها هم باشه. شاید در نسخه های بعدی وردپرس اون رو اضافه کنن. ولی تا اون موقع ما مجبوریم خودمون دست بکار شیم و این اکشن رو ایجاد کنیم. کاری که میخوایم بکنیم نوشتن تابعی هست که در هنگام فعال کردن یا تعویض تم فراخوانی بشه.

در تئوری ما چطور میتونیم اینکار رو انجام بدیم؟ ما میتونیم یک مقدار به عنوان Flag رو در دیتابیس ذخیره کنیم با دستور add_option . این مقدار موقعی که اولین دستورات اجرا شدن می تونه اضافه شه. فایل functions.php از اولین فایلهایی است که در هنگام لود شدن وردپرس فراخوانی میشه. پس اول از همه چک می کنیم که یک مقدار خاص توی دیتابیس وجود داره یا نه. پس اگه اون مقدار وجود نداشت تم برای اولین باره که داره لود میشه و دستورات functions.php برای اولین باره که داره اجرا میشه. پس تم همین الان Activate شده.

اگه بخواهیم دستوراتی که بصورت تئوری گفتیم رو در عمل بیاریم همچین کدی میشه.

ما یک تابع تعریف کردیم که ورودیش یک function هست که وقتی تم Activate شد فراخوانی میشه. در خط اول داخل تابع اومدیم مقدار Flag ی که تعریف کردیم رو خوندیم اگه مقدار از قبل وجود داشت که هیچ، یعنی تم از قبل فعال شده است. اگه وجود نداشت یعنی تم داره برای اولین بار فعال میشه. بعدش میام مقدار فلگ رو به دیتابیس اضافه میکنیم. و تابعی که از ورودی دریافت شد رو اجرا می کنیم(فراخوانی می کنیم) با دستور call_user_func

برای استفاده از این تابع باید به این صورت عمل کرد

در هنگام Activate شدن تم کدهای داخل تابع user_defined_func_name اجرا خواهد شد.

حالا رسیدیم به قسمت Deactivate شد تم. ما برای Deactive تم ورد پرس می تونیم براحتی از اکشن switch_theme استفاده کنیم . این اکشن موقعی که تم داره عوض میشه جزء آخرین توابعی هست که فراخوانی میشه. ولی چرا نمی تونیم به تنهایی از این تابع استفاده کنیم؟ چون باید اطلاعات (یا همون Flag) مربوط  به اکتیو کردن تم رو هم حذف کنیم. پس برای اینکار می آیم یه تابع به این صورت تعریف میکنیم

در ابتدا یه تابع تعریف کردیم و داخل اومدیم با تابع create_function یک تابع به صورت دستی ساختم که کار این تابع حذف Flag قبلی که موقع اکتیو شدن تم ست شده بود رو حذف کنیم و بدش به اکش switch_theme تابعی که از ورودی میاد رو متصل کردیم. نحوه ی استفاده از این تابع هم بدین صورته:

 

در انتها امیدوارم این چند تابع به کارتون بیاد و بتونید از اونا استفاده کنید. اگه سوالی داشتید در خدمتم :-)

 

wordpress- وردپرس

اجازه آپلود فایلهای مختلف در وردپرس

اجازه آپلود فایلهای مختلف در وردپرس

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

برای مثال وقتی بخواهیم فونتی آپلود کنیم یا فایل اجرایی رو برای دانلود بذاریم. برای اینکه به وردپرس بگیم که اینهای فایلهای مجاز هستن باید MIME Type اون فایلها رو به وردپرس معرفی کنیم

برای اینکار می تونید کد زیر رو در فایل functions.php خودتون اضافه کنید

 

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

مثلا برای آپلود فایل exe باید کد مایم تایپ application/x-msdownload رو در کدهای بالا اضافه کنیم.

لیست کامل mimetype ها رو میتونید در اینجا ببینید

http://www.freeformatter.com/mime-types-list.html