در این پست میخوام به معرفی چند تابع مفید و ناشناخته وردپرس که شاید به گوشتون نخورده باشه بپردازم.
توابع وردپرس چیست؟ در وردپرس, تعدادی تابع PHP است که از آن برای تولید و نمایش اطلاعات پویا استفاده میشود. قالب های وردپرس حاوی توابع مختلفی هستند و توسعه دهندگان وردپرس از توابع وردپرس برای فراخوانی و نمایش اطلاعات پویا استفاده میکنند.
وردپرس به همراه تعداد زیادی تابع داخلی و از قبل تعریف شده منتشر شده است که می توان از آنها در قالب های وردپرس استفاده کرد.کاربران عزیز دقت کنید که کد نویسی جزء مزایای وب سایت های وردپرسی است و برخی از معایب آن معایب ان نیز میتوان به سخت بودن کد نویسی و امکان اشتباه و خطا اشاره کرد و مزایایی که ارد این است که میتوان به سبک بودن و راحت بودن قرار دادن کد در وب سایت اشاره کرد .
اگر شما هم یکی از وردپرس کاران فوق حرفه ای باشید که مطمئنا هستید پس می دانید که این سیستم از یک مجموعه کامل از توابع کاربردی و بسیار حرفه ای برخوردار بوده و روز به روز نیز بر تعداد این توابع کاربردی در سیستم مدیریت محتوای وردپرس افزوده می شود.
ما به وسیله ی این توابع می توانیم لیستی از پست های مورد نظر را بازیابی کرده، تغییرات مورد نظر خود را اعمال و ارتباطات رسانه اجتماعی کاربر مورد نظر را در یک چشم به هم زدن نمایش دهیم که این برای همه ما بسیار جالب توجه و خوب است.
در این قسمت شروع میکنیم و می رسیم به معرفی چندین تابع مهم ، اما قبل از اینکه به ادامه مطلب بپردازیم یک نکته را ذکر کنم که این قسمت کد نویسی دارد و اگر شما زمینه ای در ارتباط با کد نویسی ندارید این مطلب برای شما مناسب نیست .
تابع get_post_field :
اگر بخواهید بدون جستجو در میان تمام پست ها، داده هایی از جدول wp_posts دریافت کنید، این تابع بسیار مفید است.
1 | get_post_field( $field, $post_id, $context ); |
تابع Antispambot :
در طول این سال ها، من نسبت به این تابع توجه ویژه ای را داشته ام. به نظر می رسد که این دستور از آن دسته توابعی است که در مجموعه توابع وردپرس بیشترین مظلومیت را کشیده است.دوستان عزیز با استفاده از الگوی دستوریantispambot()می توانید کاراکترهای مورد نظر خود را با موجودیت های تحت HTML که یک روش به منظور مخفی سازی آدرس های ایمیل از دسترس افراد سودجو و خرابکار است استفاده کنید.حالت کلی این کد به صورت مثالی در پائین آورده شده است:
1 2 | $email = 'mymail@site.com'; echo 'You can contact me at ' . antispambot( $email ) . ' any time'. |
تابع Human_time_diff() :
زمانی که برای اولین بار حدود یک سال پیش من با کارکرد این تابع آشنا شدم فکر کردم که این دستور باید یک تابع جدید بوده که من در لیست تغییرات بارها با آن برخورد کرده ام. در حالی که به هیچ وجه اینطور نبود. این تابع که وظیفه محاسبه و نمایش اختلاف بین دو واحد زمانی را بر عهده دارد بعد از نسخه 1.5 وردپرس که به سال 2005 میلادی بر می گردد به مجموعه توابع وردپرس اضافه شده است.
تکه کد کاربردی زیر که من آن را از سایت the codex پیدا کرده ام نشان می دهد که چه مدت پیش، پست فعلی منتشر شده است.این تابع از تاریخ انتشار پست به عنوان آرگومان اول و تاریخ فعلی به عنوان آرگومان دوم استفاده می کند.
1 2 | echo 'This post was published ' . human_time_diff( get_the_time( 'U' ), current_time( 'timestamp' ) ) . ' ago'; |
Checked / Selected :
شما احتمالا تعداد زیادی گزینه های انتخابی با دستور if دیده اید که برای بررسی اینکه آیا یک مقدار مشخص انتخاب شده است یا نه، مورد استفاده قرار می گیرد. خوب، وردپرس یک تابع بسیار جذاب برای هر کدام از آنها دارد. این دو تابع تمام کارهای سخت را برای شما انجام می دهند. مثال زیر به سادگی بررسی می کند که آیا $foo مساوی با ۱ است یا نه و اگر هست، وردپرس از درستی ویژگی های آن اطمینان حاصل خواهد کرد.
استفاده از دستورات استاندارد if:
1 | <input type='checkbox' name='options[postlink]' value='1' <?php if ( $foo == 1 ) echo 'checked="checked"'; ?> /> |
1 | <input type="checkbox" name="options[postlink]" value="1" <?php checked( $foo, 1 ); ?> /> |
1 2 3 4 5 | <select name="foo"> <option value="1" <?php if ( $foo == 1 ) echo 'selected="selected"'; ?>>1</option> <option value="2" <?php if ( $foo == 2 ) echo 'selected="selected"'; ?>>2</option> <option value="3" <?php if ( $foo == 3 ) echo 'selected="selected"'; ?>>3</option> </select> |
1 2 3 4 5 | <select name=foo"> <option value="1" <?php selected( $foo, 1 ); ?>>1</option> <option value="2" <?php selected( $foo, 2 ); ?>>2</option> <option value="3" <?php selected( $foo, 3 ); ?>>3</option> </select> |
تابع get_post_meta :
این تابع ، تابعی است که در وب سایت های وردپرسی به خوبی شناخته نشده است چون این یک تابع جدید در وردپرس است. اول از همه با حذف پارامترهای دوم و سوم، شما می توانید تمامی اطلاعات metadata را که تحت یک پست وجود دارد استخراج کنید.حتی اگر شما داده ها را فقط برای یک کلید منفرد استخراج می کنید، با این حال تمامی postmeta نیز استخراج خواهد شد.
1 | $all_meta = get_post_meta( 14 ); |
تابع get_template_part :
با این تابع میتوانید یک بخش از قالب را در یک قالب دیگر بارگذاری می کند. این تابع برای قطعات دوباره استفاده شده ی یک قالب، بسیار مفید است، و به شما کمک می کند تا برای فایل های تم خود را شسته و رفته نگه دارید (که همیشه چیز خوبی است). این به فایل های گروهی در تم شما کمک می کند، مانند همه ی فایل های استفاده شده برای “حلقه”.
1 | get_template_part( 'loop', 'index' ); |
تابع Wp_upload_bits :
با این تابع شما می توانید امکان آپلود فایل را به صورت مستفیم تحت سیستم وردپرس خود فعال کنید. این تابع فایل مورد نظر برای آپلود را به پوشه uploads منتقل نکرده و در عوض آن را به بخش رسانه وردپرس یا WordPress media section منتقل خواهد کرد. کار با این تابع فوق العاده راحت بوده و برای انجام باقی کارها می توانید از تابع <code>wp_insert_attachment()</code> استفاده کنید.
اگر نگاهی اجمالی به نمونه کد بیندازید ناخود آگاه طرز کار آن در ذهنتان شکل می گیرد. خب حال اجازه دهید توضیحی اجمالی در رابطه با نحوه استفاده از این تابع خدمت شما ارائه کنیم.پارامتر اول همانطور که از نام آن برمی آید نام فایل مورد نظر است. دومین پارامتر هم که باید با مقدار null تنظیم شود و پارامتر سوم هم محتویات واقعی فایل است.
1 | $upload = wp_upload_bits( $file['name'], null, file_get_contents( $file['tmp_name'] ) ); |
تابع Get_post_field :
خب یک تابع مفید و کاربردی را در اینجا بیان می کنیم که در چندی قبل از پیشرفت برنامه نویسی و درست شدن قطعه کد های حرفه ای برنامه نویسان حلقه ای را برای شمارش تعداد کامنت های بازدیدکننده ها از یک پست خاص را می نوشتند یا حتی برخی یک کوئری اختصاصی برای این منظور در نظر می گرفتند که کاری بسیار سخت بود و اصلا صرفه ای برای زمان و آسانی ان نداشت. اما حالا و در این زمان باید بدانید که دیگر نیاز به استفاده از این روش های به نسبت خسته کننده ندارید و زبان های برنامه نویسی پیشرف بسیاری کرده اند و تنها کاری که لازم است برای نیل به این هدف انجام دهید استفاده از الگوی دستوریget_post_field()می باشد.دوستان عزیز توجه کنید که کار اصلی این تابع در سیستم مدیریت محتوای وردپرس این است که مقدار یک فیلد منفرد را برای یک پست منفرد در پایگاه داده بازیابی می کند.
مثال این تابع در وردپرس به صورت زیر است :
1 | This post has <?php echo get_post_field( ‘comment_count’, 4124 ) ?> comments. |
تابع wp_remote_get/post :
این تابع کمکی، به جلو راندن / ارسال داده ها از / به منابع دور، با تلاش های محدود را بسیار آسان می کند. شما معمولا چیزی شبیه به این می نویسید.
1 2 3 4 5 6 7 | $ch = curl_init(); $timeout = 5; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $data = curl_exec($ch); curl_close($ch); |
1 | wp_remote_get( $url, $args ); |
تابع Wpautop :
تابع Wpautop این تابع اخیرا کمی مورد توجه کدنویسان قرار گرفته و جدید است ولی باز هم اما با این حال ببرای خیلی از افراد نامشخص است زیرا تعداد استفاده کنندگان از این ویژگی بسیار کم است. طرز کار این تابع مشابه PHP native nl2br است، با این تفاوت که به جای ایجاد خطوط جدید، محتوای شما را در دل پاراگراف ها قرار می دهد.با یک مثال قضیه را واضح تر بیان می کنیم :
در اینجا عزیزان مثلا تصور کنید که شما یک کادرمتن دارید و می خواهید مطمئن شوید زمانی که کاربران پاراگراف ها را با انفصال دو خط ایجاد می کنند آن پاراگراف ها در بخش جلویی و انتهایی نیز باقی می مانند که برای این منظور میتوانید از این تابع در وب سایت خود استفاده کنید که کد ان به صورت زیر است:
1 2 | <h2>What Our Users Say</h2> <?php echo wpautop( $user_comment ) ?> |
تابع is_mobile_visitor :
امروزه تعداد استفاده کنندگان از دستگاه های قابل حمل از جمله گوشی های هوشمند و تبلت ها به سرعت در حال رشده . به همین نسبت تعداد کاربرانی که از این دستگاه ها برای اتصال به اینترنت استفاده میکنند هم روند افزایش داره . برای همینه که در طراحی صفحات وب باید این کاربران رو هم در نظر بگیرید .
با استفاده از این تابع می تونید تشخیص بدید که آیا کاربر با دستگاه موبایل داره سایتتون رو می بینه یا نه . برای اینکار کافیه تابع زیر رو در فایل functions.php قالب وردپرستون کپی کنید :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | // Add this to functions.php function is_mobile_visitor() { // Check if mobile visitor if ( function_exists( 'wp_is_mobile' ) ) return wp_is_mobile(); static $is_mobile; if ( isset($is_mobile) ) return $is_mobile; if ( empty($_SERVER['HTTP_USER_AGENT']) ) { $is_mobile = false; } elseif ( strpos($_SERVER['HTTP_USER_AGENT'], 'Mobile') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'Android') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'Silk/') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'Kindle') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'BlackBerry') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mini') !== false ) { $is_mobile = true; } else { $is_mobile = false; } return $is_mobile; } |
تابع is_mobile_visitor در صورتی که بازدید کننده از طریق دستگاه موبایلی سایت شما رو ببینه مقدار true و در غیر این صورت false رو بر می گردونه .
بعد از افزودن این تابع به فایل functions.php می تونید در فایل های مختلف قالب تون ازش استفاده کنید . به طور مثال اگر بخواید برای کاربرانی که با موبایل سایت شما رو می بینند یک پیام و برای بقیه پیام دیگه ای رو نمایش بدید می تونید تابع رو به این شکل به کار ببرید :
1 2 3 4 5 6 | // Use anywhere in your WP theme if (is_mobile_visitor() ){ echo "Message for Mobile Visitors"; }else{ echo "Message for non-Mobile Visitors"; } |
دیگه به خودتون بستگی داره که چه استفاده ای از این تابع بکنید . می تونید خیلی راحت آمار بازدیدکنندگان موبایلتون رو جمع آوری کنید یا اینکه یه بخشی از سایت رو برای موبایلی ها نشون ندید و …
تابع DOING_AJAX :
با وجود اینکه این دستور در زمره توابع قرار ندارد و در واقع یک ثابت است اما با این حال چیزی از ارزش کاربردی آن کم نمی کند. با این تابع می توانید حالت های فراخوانی عادی و فراخوانی AJAX را تشخیص داده و با توجه به آن اقدام مورد نظر خود را انجام دهید.
1 2 3 4 5 6 | if (defined('DOING_AJAX') && DOING_AJAX) { echo 'done'; die() } else { } |
تابع Wp_redirect :
1 | wp_redirect( 'http://website.com/new-url/', 301 ); |
تابع The Author Link :
1 | <?php the_author_link(); ?> |
تابع The Author Meta :
شما با این کد میتوانید مشخصات کاربران مورد نظر خود را در سایت وردپرس نمایش دهید برای استفاده از این ویژگی وردپرس در حلقه ها به کار بپردازید.
1 | <?php the_author_meta( $field, $userID); ?> |
این نوشته چندتا لایک داره؟
دیدگاه خود را بیان کنید