رفتن به مطلب

امتیازدهی به مطلب


پست های پیشنهاد شده

سلام

من میخوام برای پست هام یه قسمت ایجاد کنم که اگر کاربر روی پسندیدم کلیک کرد ثبت بشه و اگر روی نپسندیدم کلیک کرد ثبت بشه

یعنی امتیاز دهی باشه دیگه

چجوری میتونم همچین چیزی رو درست کنم؟

لینک به ارسال

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

کارش اینه که میتونید به نظرات و پست ها پسندیدم و نپسندیدم رو اضافه کنید (خودکار و دستی)


https://wordpress.org/plugins/like-dislike-counter-for-posts-pages-and-comments/

لینک به ارسال

برای این کار کدی وجود نداره؟؟

چون من دیزاین اون بخش رو کردم فقط میخوام کدش رو اضافه کنم که وقتی کلیک میکنه اضافه بشه

لینک به ارسال

برای لایک وجود داره وقبلا در انجمن بحث کردیم (جستجو کنید) اما برای دیسلایک خیر

لینک به ارسال

عمری باشه یه آموزش براش می گذارم

یا اگر با کد نویسی آشنایید این مراحل کلی کاره

یک متا برای مطلب می نویسید با نامن مثلا like_counter و مقدار 0 و با اکشن save_post فعالش می کنید که همراه هر مطلب ساخته بشه

یک فرم در single.php می سازید که 4 مقدار را جابجا کنه الف مجموع لایک ها (که مقدارش را از همون متایی که در ابتدا ساختید می خونه - ب نتیجه لایک یا دیسلایک حاضر ج - آی دی مطلب د - آی دی کاربر جاری

فیلد اول را می توانید قابل نمایش کنید که همیشه نتیجه لایک مطلب را نمایش بده

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

در اکشن متغیرها را می گیرید متغیر دوم را شرطی می کنید که اگر like بود یکی به مقدار متغیر مجموع اضافه کند و یک یوزر متا بسازد با نام آی دیمطلب و مقدار like برای آی دی کاربر و اگرنه یکی کم کند و یوزر متا را با مقدار unlike بسازد در آخر هم پست متایی که ساخته بودید را با مقدار جدید به روز کنه

به این ترتیب هم نتیجه قابل نمایشه و هم می شه از لیست رای دهندگان کوئری گرفت

اگر توضیحات کافی نبود منتظر آموزش باشید

لینک به ارسال

به نظرم استفاده از پلاگین رو اصلا توصیه نمیکنم چون پلاگین ها حجم جاوا اسکریپت بالایی دارن و برای من که خیلی واسم سرعت سایت و بهینه بودن اون مهمه اصلا چیز جالبی نیستن و بیخودی حجم دیتابیس سایت رو سنگین میکنن !! که خود این میتونه در دراز مدت تاثیر خیلی بدی توی مصرف منابع بذاره . بنظرم اگه راهی باشه که بشه با PHP و بدون نیاز به جداول دیتابیس و با استفاده از کوکی یه همچین قابلیتی ساخت میتونه خیلی خیلی سبک تر + بهینه تر باشه .

طبق بررسی هایی که کردم پلاگین های like و unlike ریکوئست اضافی به سرور ارسال میکنن و باعث افزایش حجم سایت و دیتابیس میشن .

لینک به ارسال

میتونید از سیستم Php و Sql یه سیستم ثبت کنید براحتی براتون ذخیره کنه ، من انجام دادم منبع میدم نگاه کنید

http://www.webcodo.net/like-dislike-system-with-jquery-ajax-and-php-youtube-like-design/

لینک به ارسال

سلام

ممنون از راهنمایی هاتون

امیدوارم بتونم با راهنمایی هاتون اوکی کنم کارمون

در رابطه با سئوال اولتون توی تایپیک آموزش

منظور حلقه مطالب است

[sharedmedia=tutorials:tutorials:324]

[sharedmedia=tutorials:tutorials:326]

می تونید فرم و فیلدهای هیدن را که نمایش داده نمی شوند در داخل حلقه مطالب بگذارید و کلیدهای لایک و آن لایک را خارج حلقه در اینصورت کد جی کوئریتون تغییر می کنه به


<script type="text/javascript">
$(document).ready(function() {
$(".like-button").click(function() {
var v = $(this).val();
$("#like-button").val(v).parent("form").submit();
});
});
</script>

3. به مطلب اضافه شد

لینک به ارسال

سلام

چرا توی جی کوئری فقط کلاس و آیدی لایک رو فراخوانی کردید؟؟ دیسلایک چی؟؟

شرمنده من موفق نشدم درست کنم امکانش هست شما کدهام رو اصلاح کنید!!! شرمنده

کدهای لایک و دیسلایک :


<div class="like-unlike">
<div class="like">
<span class="livicon" data-c= "#00a651" data-hovercolor="#00a651" data-name= "thumbs-up" data-size="20"></span>
<div class="like-text">
5نفر پسندیده اند
</div><!--like-text-->
</div><!--like-->
<div class="unlike">
<span class="livicon" data-c= "#f73535" data-hovercolor="#f73535" data-name= "thumbs-down" data-size="20"></span>
<div class="unlike-text">
5 نفر نپسندیده اند
</div><!--unlike-text-->
</div><!--unlike-->
</div><!--like-unlike-->

استایل هاش :


.like-unlike{
height: 82px;
margin-top: -43px;
border-top: 1px solid #aaa;
}
.like{
float: right;
margin-right: 90px;
}
.like span{
position: relative;
top: 10px;
}
.like-text{
margin-right: 28px;
margin-top: -18px;
font-size: 13px;
color:#00a651;
cursor:pointer;
}
.unlike{
float: left;
margin-left: 90px;
}
.unlike span{
position: relative;
top: 10px;
}
.unlike-text{
margin-right: 28px;
margin-top: -18px;
font-size: 13px;
color:#f73535;
cursor:pointer;
}

ممنون :wub:

لینک به ارسال

کدهای شما ارتباطی با کار ما نداره اون کدها را باید جور دیگه ای ست کرد که دو تا متای جداگانه ذخیره کنند

روش معمول اینه که ماحصل نتیجه را بنویسد

من در جی کوئری چیزی که گفتید را نگذاشتم و پیداش هم نکردم نمی دونم منظورتون چیه

کدها را بخوانید و برای نیاز خودتون شخصی سازی کنید خیلی دنبال لقمه آماده نباشیبد

یا در بخش خرید تایپیک بزنید

لینک به ارسال

متوجه نشدم یعنی چی به کار ما ارتباطی نداره باید جور دیگه ای ست کرد؟؟؟ یعنی با اون کدهایی که شما گفتین نمیشه این چیزی که من میخوام رو درست کنم؟؟

خط 3 و 5 جی کوئری رو نگاه کنید فقط like رو گفتین :


<script type="text/javascript">
$(document).ready(function() {
$(".like-button").click(function() {
var v = $(this).val();
$("#like-button").val(v).parent("form").submit();
});
});
</script>

دنبال لقمه ی آماده نیستم به خدا من اینجا کلی جون کندم نشد الان کلی قسمت های دیگه رو اوکی کردم تقریبا میشه گفت فقط همین رو مشکل دارم با یه مشکل دیگه که اون هم ایشاالله اوکی میشه

راستی این کدهایی که شما دادین وقتی لایک میشه صفحه رفرش میشه؟؟؟

لینک به ارسال

آقا ایمان لطفا اگر میشه بررسی کنید این آخرین چیزیه که تو سایتم مونده همه چیش اوکی شده تقریبا

چیزی هم اگر مونده باشه ریزه کاری html - Css هست

لینک به ارسال

ما بقی کدها رو هم بخونید like-button کلاس دو کلید like و unlike و آی دی فیلد هیدنی که نتیجه را حمل می کنه

فرق کار شما با آموزش اینه که در آموزش نتیجه کلی ذخیره می شه شما باید برای هر حالت یک متا ذخیره کنید

تفاوت در اکشنتونه نه در جی کوئری

که اون هم در نظرهای همون آموزش اومده

لینک به ارسال

تورو خدا میشه اون کدهای منو اصلاح کنید من بزارم سیستم نظر دهیمو

من هر کاری مکنم نمیشه

به خدا دنبال لقمه آماده نیستم

من هدفم یادگیری هست بعد اگر نتونستم میام اینجا مطرح میکنم

لینک به ارسال

داخل حلقه


<?php
if(isset($_POST['like_button'])) {
$likes_count = get_post_meta($post->ID, 'likes_count', true);
$unlikes_count = get_post_meta($post->ID, 'unlikes_count', true);
$like = $_POST['like_button'];
if($like == 'like') {
$likes_count = $likes_count+1;
update_post_meta($post->ID, 'likes_count', true);
}
else {
$likes_count = $unlikes_count+1;
update_post_meta($post->ID, 'unlikes_count', true);
}
}
?>
<form action="<?php the_permalink();?>">
<input type="hidden" name="like_button" id="like-button">
</form>

محل نمایش امتیازها (ولایک و دیسلایک کردن)


<div class="like-unlike">
<?php
$likes_count = get_post_meta($post->ID, 'likes_count', true);
$unlikes_count = get_post_meta($post->ID, 'unlikes_count', true);
?>
<div class="like like-button" data-value="like">
<span class="livicon" data-c="#00a651" data-hovercolor="#00a651" data-name="thumbs-up" data-size="20"></span>
<div class="like-text">
<?php echo $likes_count;?>نفر پسندیده اند
</div><!--like-text-->
</div><!--like-->
<div class="unlike like-button" data-value="unlike">
<span class="livicon" data-c="#f73535" data-hovercolor="#f73535" data-name="thumbs-down" data-size="20"></span>
<div class="unlike-text">
<?php echo $likes_count;?> نفر نپسندیده اند
</div><!--unlike-text-->
</div><!--unlike-->
</div><!--like-unlike-->
<script type="text/javascript">
$(document).ready(function() {
$(".like-button").click(function() {
var v = $(this).attr("data-value");
$("#like-button").val(v).parent("form").submit();
});
});
</script>

ولی شد لقمه آماده بهتون پیشنهاد می کنم یک کم بیشتر برای کارتون وقت مطالعه بگذارید و روش درست انجام دادن را بیاموزید نه کپی برداری کد

لینک به ارسال

یه دنیا ممنون

حق با شماست

اما اینطوری نیست که شما فکر میکنید

من روش کار کردم اما نتونستم

آقا الان ثبت نمیشه مثل اینکه

خودتون نگاه کنید http://www.toolweb.ir/

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

کلیک میکنیم url میشه http://www.toolweb.ir/?like_button=like و میاد تو صفحه اصلی سایت و ثبت هم نمیشه

لینک به ارسال

ساختار پیوند یکتاتون باید نام نوشته باشه

می تونید تگ فرمتون رو هم به اینشکل تغییر بدید


<form method="post" action="<?php the_permalink();?>">

لینک به ارسال

ممنون الان درست شد

فقط یه چیزی

اونم اینکه وقتی روی پسندیدم کلیک میشه هم برای پسندیدم یک واحد اضافه میشه و هم برای نپسندیدم

تست کنید

یه چیزی

نمیشه کاری کرد که رفرش نشه صفحه؟؟

لینک به ارسال

صفحه رفرش نمی شه اکشن کد اجرا می شه می تونید با کد نویسی اکشن را خارج از صفحه اجرا کنید (باید خودتون برنامه نویسیش رو بدونید)

و می تونید کار کردن با آژاکس را یاد بگیرید و آژاکسیش کنید

اگر کد وب گذر را حذف کنید صفحه تون اینقدر لودش طولانی نمی شه

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...