hoka1731
جمعه 15 بهمن 1395, 09:01 صبح
سلام خدمت همه ی عزیزان
من یک فانکشنی دارم برای لایک وردپرس هست . بدون مشکل کار میکنه و هیچ مشکلی نیست ولی هرچقدر سعی کردم نتونستم همین فانکشن و کد جاوارو کپی کنم که بتونم هم یک دکمه ی لایک داشته باشم هم یک دیسلایک
کسی از دوستان میتونه راه نمایی بکنه ؟
فانکشن
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');
جاوااسکریپت
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;});});
من یک فانکشنی دارم برای لایک وردپرس هست . بدون مشکل کار میکنه و هیچ مشکلی نیست ولی هرچقدر سعی کردم نتونستم همین فانکشن و کد جاوارو کپی کنم که بتونم هم یک دکمه ی لایک داشته باشم هم یک دیسلایک
کسی از دوستان میتونه راه نمایی بکنه ؟
فانکشن
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');
جاوااسکریپت
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;});});