no-img
سوس وردپرس

افزودن لایک به قالب بدون نیاز به افزونه

انتشار؛ 8 سپتامبر 2020،
10 روز پیش
عشق

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

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

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

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

ابتدا کد زیر را در فایل functions.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[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 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', '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-linkesScript.js قرار دهید.

var $j=jQuery.noConflict();$j(document).ready(function(){function reloadLikes(who){var text=$j("#"+who).text();var patt=/(\d)+/;var num=patt.exec(text);num[0]++;text=text.replace(patt,num[0]);if(num[0]==1){text=text.replace('people like','person likes');}else if(num[0]==2){text=text.replace('person likes','people like');}
$j("#"+who).text(text);}
$j(".likeThis").click(function(){var classes=$j(this).attr("class");classes=classes.split(" ");if(classes[1]=="done"){return false;}
var classes=$j(this).addClass("done");var id=$j(this).attr("id");id=id.split("like-");$j.ajax({type:"POST",url:"index.php",data:"likepost="+id[1],success:reloadLikes("like-"+id[1])});return false;});});

در پایان نیز کد زیر را در هر قسمت از پوسته که مورد نظر شماس قرار دهید.

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

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

<?php
$likeposts = new WP_Query( array( 'posts_per_page' => 10 ,'meta_key' => '_likes', 'orderby' => 'meta_value', 'order' => 'DESC' ) );
while ( $likeposts->have_posts() ) : $likeposts->the_post();
?>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php endwhile; ?>
لینک کوتاه : https://soswp.ir/?p=24274
سلام علیکم!
2
فرم گزارش را به دقت تکمیل نمایید...
از همکاری شما پیشاپیش سپاسگذاریم