لایک مطالب و دیدگاه وردپرس بدون افزونه
احتمالاً در سایت های زیادی امکان لایک یا پسندیدن نوشته ها را مشاهده کرده اید. در این حالت با کلیک بروی عبارت یا تصویری که معمولاً به شکل قلب یا انگشت اشاره رو به بالا است، عددی در کنار آیکون اضافه می شود که مفهوم پسندیده شدن توسط بازدیدکنندگان و مخاطبان است و این را نیز میتوان به عنوان یکی از معمولترین و راحتترین روش ها برای مشخص کردن ارزش یک نوشته توسط کاربران و مخاطبان نام برد.
نقاط قوت سیستم لایک مطالب و دیدگاه وردپرس بدون افزونه
- لایک و دیس لایک پست و نظرات وردپرس به شکل ایجکس (Ajax)
- استفاده از آیکون های svg، فونت آیکون و یا تصویر در پروژه
- فراخوانی دکمه های لایک در نوشته و نظرات وردپرس توسط تابع
- امکان استفاده در حلقه وردپرس یا کوئری های wordpress
- قابلیت تعیین آیکون متفاوت برای نوشته های لایک شده
- امکان پسندیدن یا حذف لایک مطالب و دیدگاه ها توسط کاربر
- قابلیت نمایش تعداد لایک در پروفایل کاربران
- امکان ساخت کوئری برای نمایش نوشته یا دیدگاه های دارای بیشترین لایک
- قابلیت نمایش لایک بر حسب کیلو
- و …
آموزش ایجاد سیستم لایک مطالب و دیدگاه وردپرس بدون افزونه با شکل ایجکس
افزودن امکان لایک مطالب وردپرس در چند مرحله انجام می شود اول باید فایل functions.php پوسته وردپرس خود را برای ویرایش باز کنید وکد زیر را به صورت صحیح به فایل فانکشن قالب وردپرس خود اضافه کنید.
include_once ( ‘post-like.php’ );
در پوشه js فایلی با نام simple-likes-public.js وجود دارد که برای ایجاد قابلیت ایجکس مورد استفاده قرار میگیرد.
این فایل جی کوئری را نیز به پوشه js قالب منتقل میکنیم. (اگر پوسته وردپرس تان پوشه js ندارد آنرا بسازید و فایل simple-likes-public.js را درون آن کپی کنید)
در پوشه css فایلی با نام simple-likes-public.css وجود دارد که باید کدهای استایل موجود در آن را کپی کرده و در استایل پوسته که با نام style.css شناخته می شود قرار دهید. تقریباً کار فراخوانی و شناساندن توابع سیستم لایک مطالب و دیدگاه وردپرس بدون افزونه تمام شده و اکنون می توانید با استفاده از توابع زیر در حلقه و کوئری وردپرس بخش لایک مطالب را نمایش دهید.
function likeThis($post_id,$action = ‘get’) {
if(!is_numeric($post_id)) {
error_log(“خطا : مقدار عددی برای post_id ارسال نشده است”);
return;
}
switch($action) {
case ‘get’:
$data = get_post_meta($post_id, ‘_likes’);
if(!is_numeric($data[0])) {
$data[0] = 0;
add_post_meta($post_id, ‘_likes’, ‘0’, true);
}
return $data[0];
break;
case ‘update’:
if(isset($_COOKIE[“like_” . $post_id])) {
return;
}
$currentValue = get_post_meta($post_id, ‘_likes’);
if(!is_numeric($currentValue[0])) {
$currentValue[0] = 0;
add_post_meta($post_id, ‘_likes’, ‘1’, true);
}
$currentValue[0]++;
update_post_meta($post_id, ‘_likes’, $currentValue[0]);
setcookie(“like_” . $post_id, $post_id,time()+(60*60*24*365));
break;
}
}
function mw_Likes($post_id) {
$likes = likeThis($post_id);
$who = ‘ بار پسندیده شده است ‘;
if($likes == 1) {
$who = ‘ بار پسندیده شده است ‘;
}
if(isset($_COOKIE[“like_” . $post_id])) {
print ‘<a id=”like-‘.$post_id.'” href=”#”>’.$likes.$who.'</a>’;
return;
}
print ‘<a id=”like-‘.$post_id.'” href=”#”>’.$likes.$who.'</a>’;
}
function setUpPostLikes($post_id) {
if(!is_numeric($post_id)) {
error_log(“خطا : مقدار عددی برای post_id ارسال نشده است”);
return;
}
add_post_meta($post_id, ‘_likes’, ‘0’, true);
}
function checkHeaders() {
if(isset($_POST[“likepost”])) {
likeThis($_POST[“likepost”],’update’);
}
}
function jsIncludes() {
wp_enqueue_script(‘jquery’);
wp_register_script(‘Mw-likesScript’,
get_template_directory_uri(). ‘/js/Mw-likesScript.js’ );
wp_enqueue_script(‘Mw-likesScript’,array(‘jquery’));
}
add_action (‘publish_post’, ‘setUpPostLikes’);
add_action (‘init’, ‘checkHeaders’);
add_action (‘get_header’, ‘jsIncludes’);
با اضافه کردن کد بالا امکان لایک کردن مطالب توسط کاربران در وردپرس اضافه می شود و باید بدانید این قابلیت باعث می شود که کاربران تنها مجاز به لایک کردن هر نوشته تنها برای یکبار هستند.
در مرحلهی بعدی همانطور که در کد فانکشن آمده بود برای عملکرد صحیح قابلیت لایک نوشته ها در وردپرس نیاز به فراخوان کردن فایل جاوا اسکریپت کم حجم است که باید آن را در مسیر زیر که در کد تعریف شده است بارگزاری کنید، چنانچه آدرس دهی به فایل جاوا اسکریپت درست انجام نگیرد و فایل در دسترس نباشد عملکرد لایک کردن نوشته نیز دچار مشکل خواهد شد:
your-theme/js/Mw-likesScript.js
در مرحلهی آخر باید کد زیر را برای نمایش و عملکرد کدهای در هر کجای قالب که می خواهید قرار دهید، شما میتوانید عنوان استفاده شده برای لایک کردن نوشته را به عنوان دلخواه تغییر دهید و برای سفارشی سازی این قابلیت برای آن استایل مخصوصی تعریف نمایید:
<!–?php mw_Likes(get_the_ID()); ?–>
اگر بخواهید محبوبترین مطالب را بر اساس تعداد لایکها در دستهبندی جاری نشان دهید، میتوانید از کد زیر استفاده کنید:
?>
<!—– CODHAYE MARBOOTE ——>
<!–?php endwhile; ?–>
درباره Mostafa Shoa
مدیر تیم پارس نویس، کارشناس مهندسی نرم افزار، مدرس دوره های برنامه نویسی و طراحی سایت در مدارس تیزهوشان، مشاور تبلیغات و بازاریابی استارتاپ ها و کسب و کارهای اینترنتی
نوشته های بیشتر از Mostafa Shoa
دیدگاهتان را بنویسید