آموزش افزودن لایک کردن بدون نیاز به افزونه در وردپرس
ممکن است شما مدیر یک سایت و یا وبلاگ باشید و قصد داشته باشید میزان رضایت و محبوبیت پست ها و مطالب را از طرف کاربران بدانید. راه های زیادی برای این کار وجود دارد که لایک کردن یکی از ساده ترین ورایج ترین آن هاست که به کمک آن میتوانید میزان رضایت کاربران از مطالب را ارزیابی کنید. در این آموزش روش افزودن لایک کردن بدون نیاز به افزونه را برای شما قرار داده ایم. در ادامه با هاستینجا همراه باشید.
برای استفاده از این قابلیت روشهایی وجود دارد یکی از این روش ها استفاده از شبکه های اجتماعی مانند فیس بوک که با قرار دادن کدهای آن در قالب وردپرس خود کاربران میتواند با پسندیدن مطالب شما آن ها را در حساب کاربری خود به اشتراک گذارند. این روش برای کاربران ایرانی به دلیل استفاده این شبکه های اجتماعی از پرتوکل https مشکل ساز بوده به به دلیل مشکلات در عدم بارگذاری صفحات وب.
روش دوم نیز استفاده از افزونه های افزونه های لایک کردن مطالب برای وردپرس میباشد که میتوانید با نصب آن در قالب وردپرس خود از آن استفاده کنید. در این روش نیز مشکلاتی مانند اسفاده بیشتر از حافظه وجود دارد.
روشی که ما برای شما قرار داده ایم افزودن لایک کردن مطالب بدون استفاده از شبکه های مجازی و نصب افزونه میباشد که در ادامه میتوانید آموزشات لازم را مطالعه کنید.
ابتدا کد زیر را در فایل functions.php قرار دهید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 |
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 قرار دهید.
1 2 3 4 5 6 7 |
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;});}); |
در پایان نیز کد زیر را در هر قسمت از پوسته که مورد نظر شماس قرار دهید.
1 |
<?php mw_Likes(get_the_ID()); ?> |
برای نمایش محبوبترین مطالب بر اساس لایک کاربران در دسته های خود میتوانید از کد زیر استفاده کنید.
1 2 3 4 5 6 7 8 9 |
<?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(); ?> <?php endwhile; ?> |