دیجی اسکریپت

افزودن قابلیت لایک مطالب در وردپرس بدون افزونه | دیجی اسکریپت

افزودن قابلیت لایک مطالب در وردپرس بدون افزونه
[ad_1]

لایک مطالب وردپرس نیز مشابه نمایش تعداد بازدید مطالب وردپرس بدون نیاز به افزونه دارای اهمیت بالایی بوده و با استفاده از قابلیت لایک مطالب وردپرس قادر خواهید بود تا میزان رضایتمندی کاربران به مطالب رو مورد سنجش و ارزیابی قرار دهید. در این مقاله از بیست اسکریپت قصد دارم تا به معرفی قطعه کدی برای افزودن امکان لایک مطالب در وردپرس بپردازم که با استفاده از آن می‌توانید امکان افزودن دکمه پسندیدن مطالب در وردپرس را بر اساس کوکی کاربران ایجاد کنید تا برای هر نوشته تعداد پسندیدن آن نمایش داده شود.

 

افزودن قابلیت لایک مطالب در وردپرس بدون افزونه

 

برای شروع کار مثل همیشه لازم است تا ابتدا فایل فانکشن(functions.php) قالب خود را باز کرده و کدهای زیر را درون آن قرار دهید.

 

<?php
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[۰])) {
$data[۰] = ۰;
add_post_meta($post_id, '_likes', '۰', true);
}
return $data[۰];
break;
case 'update':
if(isset($_COOKIE["like_" . $post_id])) {
return;
}
$currentValue = get_post_meta($post_id, '_likes');
if(!is_numeric($currentValue[۰])) {
$currentValue[۰] = ۰;
add_post_meta($post_id, '_likes', '۱', true);
}
$currentValue[۰]++;
update_post_meta($post_id, '_likes', $currentValue[۰]);
setcookie("like_" . $post_id, $post_id,time()+(۶۰*۶۰*۲۴*۳۶۵));
break;
}
}
function mw_Likes($post_id) {
$likes = likeThis($post_id);
$who = ' بار پسندیده شده است ';
if($likes == ۱) {
$who = ' بار پسندیده شده است ';
}
if(isset($_COOKIE["like_" . $post_id])) {
print '<a href="#" class="likeThis done" id="like-'.$post_id.'">'.$likes.$who.'</a>';
return;
}
print '<a href="#" class="likeThis" id="like-'.$post_id.'">'.$likes.$who.'</a>';
}
function setUpPostLikes($post_id) {
if(!is_numeric($post_id)) {
error_log("خطا : مقدار عددی برای post_id ارسال نشده است");
return;
}
add_post_meta($post_id, '_likes', '۰', 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');
?>

 

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

 

حال در پوشه js قالب خود فایلی را که با عنوان Mw-likesScript.js در انتهای نوشته ضمیمه کرده‌ام را آپلود کنید. این فایل حتما باید مشابه نمونه درون پوشه‌ای با نام js باشد. اگر در قالب شما چنین پوشه‌ای وجود ندارد یک پوشه ایجاد کرده و فایل را درون آن آپلود کنید.

 

در نهایت حال نوبت به این رسیده است تا با قرار دادن دستور نمایش تعداد لایک مطالب امکان پسندیدن مطالب در وردپرس را برای کاربران نمایش داده و فراهم کنید. برای این منظور به فایل single.php که مربوط به تک‌نوشته در وردپرس می‌باشد مراجعه کرده و کد زیر را در مکان مناسبی از آن قرار دهید تا در نوشته‌های وردپرس نمایش داده شود.

 

<?php mw_Likes(get_the_ID()); ?>

 

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

 

افزودن قابلیت لایک مطالب در وردپرس بدون افزونه

 

برای  اینکه کدهای فوق را به درستی قرار دهید فایل زیر را که در حالت زیپ قرار دارد را دانلود کرده و به همان صورت که پوشه بندی شده است در قالب خود قرار دهید. دقت کنید که محتوای فایل فانکشن و index درون این فایل را می‌بایست کپی کرده و در محتوای فایل فانکشن قالب خود قرار دهید.

نوشته افزودن قابلیت لایک مطالب در وردپرس بدون افزونه اولین بار در بیست اسکریپت. پدیدار شد.

[ad_2]

لینک منبع مطلب

ارسال دیدگاه جدید

به نکات زیر توجه کنید

  • نظرات شما پس از بررسی و تایید نمایش داده می شود.
  • لطفا نظرات خود را فقط در مورد مطلب بالا ارسال کنید.