معرفی 10 تابع مفید وردپرس که احتمالا ندیده باشید!
- نویسنده : webelizer در دسته بندی آموزش و هک, وردپرس
- 7 نظر و 10,356 بازدید
- ۹۴/۰۱/۲۵
- تابع وردپرس , توابع کاربردی وردپرس
اگر از وردپرس کاران قدیمی و حرفه ای باشید حتماً می دانید که این سیستم از یک مجموعه کامل از توابع کاربردی برخوردار بوده و روز به روز نیز بر تعداد این توابع افزوده می شود. ما به وسیله ی این توابع می توانیم لیستی از پست های مورد نظر را بازیابی کرده، تغییرات مورد نظر خود را اعمال و ارتباطات رسانه اجتماعی کاربر مورد نظر را در یک چشم به هم زدن نمایش دهیم.
تابع Antispambot() :
در طول این سال ها، من نسبت به این تابع توجه ویژه ای را داشته ام. به نظر می رسد که این دستور از آن دسته توابعی است که در مجموعه توابع وردپرس بیشترین مظلومیت را کشیده است. با استفاده از الگوی دستوری <code>antispambot()</code> می توانید کاراکترهای مورد نظر خود را با موجودیت های تحت HTML که یک روش به منظور مخفی سازی آدرس های ایمیل از دسترس افراد سودجو و خرابکار است استفاده کنید.
$email = 'mymail@ARTABAZ.IR'; echo 'You can contact me at ' . antispambot( $email ) . ' any time'.
به طور کلی این تابع یک لقمه چرب و نرم برای خواهان خود محسوب می شود. اما از آن طرف برخی افراد بر این باورند این نام این تابع، به درستی انتخاب نشده است. به طور کلی به صرف خواندن نام تابع، شما متوجه عملکرد واقعی آن نخواهید شد.
تابع Human_time_diff() :
زمانی که برای اولین بار حدود یک سال پیش من با کارکرد این تابع آشنا شدم فکر کردم که این دستور باید یک تابع جدید بوده که من در لیست تغییرات بارها با آن برخورد کرده ام. در حالی که به هیچ وجه اینطور نبود. این تابع که وظیفه محاسبه و نمایش اختلاف بین دو واحد زمانی را بر عهده دارد بعد از نسخه 1.5 وردپرس که به سال 2005 میلادی بر می گردد به مجموعه توابع وردپرس اضافه شده است.
تکه کد کاربردی زیر که من آن را از سایت the codex پیدا کرده ام نشان می دهد که چه مدت پیش، پست فعلی منتشر شده است.
این تابع از تاریخ انتشار پست به عنوان آرگومان اول و تاریخ فعلی به عنوان آرگومان دوم استفاده می کند.
echo 'This post was published ' . human_time_diff( get_the_time( 'U' ), current_time( 'timestamp' ) ) . ' ago';
تابع Get-post_metaI() :
در حال حاضر من می دانم که این تابع از سری توابع پرکاربرد است. اما به هر حال نحوه کار دقیق این تابع به خوبی شناخته نشده است. اول از همه با حذف پارامترهای دوم و سوم، شما می توانید تمامی اطلاعات metadata را که تحت یک پست وجود دارد استخراج کنید.
$all_meta = get_post_meta( 14 );
حتی اگر شما داده ها را فقط برای یک کلید منفرد استخراج می کنید، با این حال تمامی postmeta نیز استخراج خواهد شد.
تابع Wp_upload_bits() :
با این تابع شما می توانید امکان آپلود فایل را به صورت مستفیم تحت سیستم وردپرس خود فعال کنید. این تابع فایل مورد نظر برای آپلود را به پوشه uploads منتقل نکرده و در عوض آن را به بخش رسانه وردپرس یا WordPress media section منتقل خواهد کرد. کار با این تابع فوق العاده راحت بوده و برای انجام باقی کارها می توانید از تابع <code>wp_insert_attachment()</code> استفاده کنید.
$upload = wp_upload_bits( $file['name'], null, file_get_contents( $file['t mp_name'] ) );
اگر نگاهی اجمالی به نمونه کد بیندازید ناخود آگاه طرز کار آن در ذهنتان شکل می گیرد. خب حال اجازه دهید توضیحی اجمالی در رابطه با نحوه استفاده از این تابع خدمت شما ارائه کنیم.
پارامتر اول همانطور که از نام آن برمی آید نام فایل مورد نظر است. دومین پارامتر هم که باید با مقدار null تنظیم شود و پارامتر سوم هم محتویات واقعی فایل است.
تابع Get_post_field() :
در طی سال ها تجربه در زمینه کدنویسی تحت وردپرس دیده ام افرادی که حلقه ای را برای شمارش تعداد کامنت های بازدیدکننده ها از یک پست خاص را می نوشتند یا حتی برخی یک کوئری اختصاصی برای این منظور در نظر می گرفتند. اما باید بدانید که دیگر نیاز به استفاده از این روش های به نسبت خسته کننده ندارید تنها کاری که لازم است برای نیل به این هدف انجام دهید استفاده از الگوی دستوری <code>get_post_field()</code> می باشد. کار اصلی این تابع این است که مقدار یک فیلد منفرد را برای یک پست منفرد در پایگاه داده بازیابی می کند. برای درک بهتر به نمونه کد زیر دقت کنید :
This post has <?php echo get_post_field( 'comment_count', 4124 ) ?> c omments.
تابع Wpautop() :
این تابع اخیرا کمی مورد توجه کدنویسان قرار گرفته، اما با این وجود هنوز هم نسبتاً برای خیلی از افراد ناشناخته است. طرز کار این تابع مشابه PHP native nl2br است، با این تفاوت که به جای ایجاد خطوط جدید، محتوای شما را در دل پاراگراف ها قرار می دهد.
اجازه دهید با ذکر یک مثال با طرز کار دقیق این تابع بیشتر آشنا شویم با ما همراه باشید.
فرض کنید که شما یک کادرمتن دارید و می خواهید مطمئن شوید زمانی که کاربران پاراگراف ها را با انفصال دو خطه ایجاد می کنند آن پاراگراف ها در بخش جلویی و انتهایی نیز باقی می مانند.
<h2>What Our Users Say</h2> <?php echo wpautop( $user_comment ) ?>
تابع Wp_is_mobile :
این تابع با نامگذاری به جای خود، این امکان را به شما می دهد تا تشخیص دهید که کاربر در حال حاضر از طریق موبایل محتویات وبسایت شما را می خواند یا خیر. با این تابع شما می توانید با توجه به پلتفرم مورد استفاده کاربر، نحوه چیدمان و میزان محتویات نمایش داده شده را تعیین کنید تا در صورتی که کاربر با موبایل وبسایت شما را می بینید مجبور نباشد با داده ها و اطلاعات نمایشی حجیم درگیر شود.
تابع DOING_AJAX :
با وجود اینکه این دستور در زمره توابع قرار ندارد و در واقع یک ثابت است اما با این حال چیزی از ارزش کاربردی آن کم نمی کند. با این تابع می توانید حالت های فراخوانی عادی و فراخوانی AJAX را تشخیص داده و با توجه به آن اقدام مورد نظر خود را انجام دهید.
if (defined('DOING_AJAX') && DOING_AJAX) { echo 'done'; die() } else { }
تابع Wp_redirect :
مثال آخر تابع کاربردی دیگری را به ما نشان می دهد. الگوی دستوری این تابع که به مانند <code>wp_redirect()</code> می باشد باید به جای دستور بومی پی اچ پی در این رابطه یعنی تابع <code>header()</code> قرار بگیرد. تابع مستقیم سازی وردپرس این امکان را به شما می دهد تا یک آدرس دلخواه را برای مستقیم شدن انتخاب کرده و همچنین یک کد وضعیت نیز برای آن تعیین کنید. این روش همچنین برای مدیریت لینک های مستقیم دائمی هم فوق العاده مفید خواهد بود. به نمونه کد زیر دقت کنید :
wp_redirect( 'http://website.com/new-url/', 301 );
تابع Paginate_links() :
نظر شخصی من این است که بخشی از مظلومیت این تابع و کمتر شناخته شدنش به خاطر گسترش استفاده از پلاگین WP-PageNavi می باشد. به طور پیشفرض سیستم وردپرس لینک های بعدی و قبلی شما را در انتهای لیست پست هایتان نمایش می دهد. در واقع کار پلاگین WP-PageNavi این است که این لینک ها را با شماره صفحات جایگزین می کند.
کد نمونه زیر که از وبسایت codex گرفته شده است به شما نشان می دهد که چگونه شما می توانید آن را به یک حلقه پیشفرض اضافه کنید اما اضافه کردن آن به حلقه های سفارشی ، آزادی زیادی را برای ایجاد تغییرات دلخواه به شما نمی دهد.
سرانجام و نتیجه گیری :
در این مقاله فقط به ذکر چند تابع مفید که نسبت به باقی توابع کمتر شناخته شده بودند اشاره شد. به عنوان سخن آخر اگر شما هم از این دست توابع کاربردی سراغ دارید با ما و دیگر کاربران وبسایت آرتاباز در میان بگذارید.
ترجمه شده توسط تیم آرتاباز، هادی نجار.
سلام
با تشکر از زحماتتون فقط⬇⬇
کــــــد نـــــمــــونــــه زیــــر که از وبسایت codex گرفته شده است…
شما اطلاعی در مورد این ندارید چرا در بعضی از تم ها کل مطالب به همراه عکس ها در صفحه اول و هنگام جستوجو نمایش داده میشن اما در بعضی ها فقط بخشی از متن و عنوان متن عکس هم نمایش داده نمیشه از چه توابعی باید استفاده کرد تا این مشکل رو حل کرد ؟
از the excerpt استفاده کنین.
بازم خوب بود. مثل همیشه
تابع خوبی بودد ممنون
سلام هرچی دنبال تماس با ما گشتم پیدا نکر دم
شما جوملا هم کار میکنی من یه سفارش دارم
سلام دوست عزیز
مطلب جالبی بود…
2تا سوال، اگه بخوام یه ایمیل رو داخل متن به قول شما از افراد سودجو مخفی ش کنم! باید چیکار کنم؟!
سوال دوم: من میخوام یه فایل با پسوند خاص رو تو وردپرس آپلود کنم ولی اجازه همچین کاری رو نمیده؟ چطور باید اینکار رو کنم!؟ یه سرچ کردم یه مطلب پیدا کردم ولی نوع فایل من توش نبود که بتونم ازش استفاده کنم!
پسوند فایل: CATPart
سپاس