اشکان 1989 ارسال شده در آذر 92 گزارش بازنشر ارسال شده در آذر 92 با سلام خدمت دوستان گرامی.یه مشکلی دارم اونم اینکه میخوام امتیاز نویسنده ها که با این کد درست میشه/****** Show WP-PostRatings Total For Each Author***/function author_rating_total() {global $wpdb;global $ratings_sum;$user_id = get_the_author_meta( 'ID' );$query = array ( 'author' => $user_id, 'suppress_filters' => 'true', 'posts_per_page' => -1);$queryObject = new WP_Query($query); while($queryObject->have_posts()) : $queryObject->the_post();$post_ratings_data = get_post_custom(get_the_id());$post_ratings_score = intval($post_ratings_data['ratings_score'][0]);$ratings_array[] = $post_ratings_score;endwhile;$ratings_sum = array_sum($ratings_array);if ($ratings_sum > 0) { $ratings_sum = $ratings_sum;}echo $ratings_sum;wp_reset_query();}من میخوام مقدار متغیر $ratings_sum رو توی پایگاه داده ذخیره کنم.توی جدول wp-users ،البته من یه فیلد جدید به نام user_rate به این جدول اضافه کردم و میخوام مقدار توی این فیلد ذخیره بشه.این کد رو هم امتحان کردم مثل اینکه ایراد داره و جواب نمیده:$wpdb->update('wp_users', array( 'user_rate' => '$ratings_sum'), array( 'ID' => $user_id ) );اگه بشه یه راهنمایی کنید که بتونم درستش کنم ممنون میشم. نقل قول لینک به ارسال
imanfakhar 26231 ارسال شده در آذر 92 گزارش بازنشر ارسال شده در آذر 92 برای ذخیره اطلاعات در دیتابیس و برای کاربران از تابع هایadd_user_meta() وupdate_user_meta() استفاده کنید 2 نقل قول لینک به ارسال
imanfakhar 26231 ارسال شده در آذر 92 گزارش بازنشر ارسال شده در آذر 92 این می تونه یک نمونه خیلی ساده شده اش باشه <?php $user_ID = get_the_author_meta( 'id'); if(get_the_author_meta( 'rating', $user_ID )) { $rat = get_the_author_meta( 'rating', $user_ID ); } else { $rat = 0; add_user_meta( $user_ID, 'rating',$rat); }if(isset($_GET['rat'])) {$rat = $_GET['rat'];update_user_meta( $user_ID, 'rating',$rat);} $ratup = $rat+1; $ratdown = $rat-1;?><a href="<?php the_permalink();?>/?rat=<?php echo $ratup;?>">+</a><a href="<?php the_permalink();?>/?rat=<?php echo $ratdown;?>">-</a><?php echo $rat;?> 3 نقل قول لینک به ارسال
اشکان 1989 ارسال شده در آذر 92 مالک گزارش بازنشر ارسال شده در آذر 92 آقا ایمان ممنون.ولی من که هر کاری کردم نشد که نشد.اصلا مقداری به متا ها توی user meta اضافه نمیشه حتی فیلدش هم ساخته نمیشه همون فیلد rating.ببینید من میخوام اون متغیر $ratings_sum قبل از اکو کردن توی پایگاه داده ذخیره بشه.اگه میتونید همینو بهم کمک کنید که انجام بده ممنون میشم. نقل قول لینک به ارسال
Parsa 23463 ارسال شده در آذر 92 گزارش بازنشر ارسال شده در آذر 92 کار شما که درست نیستچرا از user meta استفاده نکردید؟http://davidwalsh.name/add-profile-fields 3 نقل قول لینک به ارسال
اشکان 1989 ارسال شده در آذر 92 مالک گزارش بازنشر ارسال شده در آذر 92 کار شما که درست نیستچرا از user meta استفاده نکردید؟http://davidwalsh.na...-profile-fieldsممنونم آقا کسرا بهم کمک کرد.این شکلی دارم استفاده میکنم ولی اصلا چیزی ذخیره نمیشه.function author_rating_total() {$user_id = get_the_author_meta( 'ID' );if(get_the_author_meta( 'rating', $user_ID )) {$rat = get_the_author_meta( 'rating', $user_ID );}else {$query = array ( 'author' => $user_id, 'suppress_filters' => 'true', 'posts_per_page' => -1);$queryObject = new WP_Query($query); while($queryObject->have_posts()) : $queryObject->the_post();$post_ratings_data = get_post_custom(get_the_id());$post_ratings_score = intval($post_ratings_data['ratings_score'][0]);$ratings_array[] = $post_ratings_score;endwhile;$ratings_sum = array_sum($ratings_array);if ($ratings_sum > 0) { $rat = $ratings_sum;}add_user_meta($user_ID,'rating', $rat);}if(isset($_GET['rat'])) {$rat = $_GET['rat'];update_user_meta( $user_ID, 'rating', $rat);}wp_reset_query();$rate = get_the_author_meta( 'rating');echo $rate;}حتی خودم دستی مقدار به این متای جدید هم که ساختم مقدار دادم مقدار رو نشون میده اما وقتی اون مقدار رو پاک میکنم مقدار این متغیر رو ذخیره نمیکنه.موندم توش که چیکار کنم!!!!در ضمن مجبورم از این کوئری توش استفاده کنم چون مقدار امتیاز های داده شده به پست ها رو برمیگردونه. نقل قول لینک به ارسال
imanfakhar 26231 ارسال شده در آذر 92 گزارش بازنشر ارسال شده در آذر 92 کدی که عرض کردم هم سالمه و هم راه درست کاریه که می خواهید بکنیدتصویر نمونه اشنشانیhttp://wpu.ir/ubet1البته نمونه کاملا ساده شده فقط برای درک کار با تابعاین هم کل کدش<?php$user_ID = get_the_author_meta( 'id');if(get_the_author_meta( 'rating', $user_ID )) {$rat = get_the_author_meta( 'rating', $user_ID );}else {$rat = 0;add_user_meta( $user_ID, 'rating',$rat);}if(isset($_GET['rat'])) {$rat = $_GET['rat'];update_user_meta( $user_ID, 'rating',$rat);}$ratup = $rat+1;$ratdown = $rat-1;?><div id="authorRatingBlock"><a href="?rat=<?php echo $ratup;?>">+</a><a href="?rat=<?php echo $ratdown;?>">-</a><span id="authorRatingInner"><span id="authorRating"><?php echo $rat;?></span></span><div>البته شما باید از متد post استفاده کنید و برای آی دی مطلب و یا آی دی و آی پی امتیاز دهنده هم فیلد hidden بگذارید که خودش اطلاعات رو بگیره و ذخیره کنهاین کار باعث می شه بتونید انواع کوئری ها رو هم برای گزارش بگیرید و الا با رکورد کردن کوئری تازه مشکلات فراخوانی و تداخل و ارورهای جور واجورش شروع می شه 3 نقل قول لینک به ارسال
imanfakhar 26231 ارسال شده در آذر 92 گزارش بازنشر ارسال شده در آذر 92 اگر منظورتون از اینکه فیلدش نمی آد اینه که در صفحه پروفایل کاربر فیلد نداره که نباید داشته باشه ولی اگر می خواهید فیلد براش اضافه کنید از کدی شبیه کد زیر در فایل functions.php استفاده کنید function custom_user_contact_methods( $user_contact_method ) {$user_contact_method['rating'] = __( 'User Rating Text', 'kubrick' );return $user_contact_method; ;}// Hook into the 'user_contactmethods' filteradd_filter( 'user_contactmethods', 'custom_user_contact_methods' ); 3 نقل قول لینک به ارسال
اشکان 1989 ارسال شده در آذر 92 مالک گزارش بازنشر ارسال شده در آذر 92 البته شما باید از متد post استفاده کنید و برای آی دی مطلب و یا آی دی و آی پی امتیاز دهنده هم فیلد hidden بگذارید که خودش اطلاعات رو بگیره و ذخیره کنهاین کار باعث می شه بتونید انواع کوئری ها رو هم برای گزارش بگیرید و الا با رکورد کردن کوئری تازه مشکلات فراخوانی و تداخل و ارورهای جور واجورش شروع می شهآقا ایمان خوب من این کوئری که قرار دادم همه کارا رو خودش انجام میده و مقدار نهایی رو توی متغیر rating_sum ذخیره میکنه.خوب الان من میخوام که این مقدار درون یه فیلد ذخیره بشه با راهنمایی آقا پارسا یه فیلد هم درست کردم مثل اینی که شما در زیر گفتیناگر منظورتون از اینکه فیلدش نمی آد اینه که در صفحه پروفایل کاربر فیلد نداره که نباید داشته باشه ولی اگر می خواهید فیلد براش اضافه کنید از کدی شبیه کد زیر در فایل functions.php استفاده کنیدfunction custom_user_contact_methods( $user_contact_method ) {$user_contact_method['rating'] = __( 'User Rating Text', 'kubrick' );return $user_contact_method; ;}// Hook into the 'user_contactmethods' filteradd_filter( 'user_contactmethods', 'custom_user_contact_methods' );اما هیچ تغییری نمیکنه فیلد ساخته شده اما متغیر درونش ریخته نمیشه.اگه میشه کد رو طوری تغییر بدین که مقدار متغیر رو دریافت کنه ممنون میشم.تمام کد ها هم توی پست بالا موجوده. نقل قول لینک به ارسال
imanfakhar 26231 ارسال شده در آذر 92 گزارش بازنشر ارسال شده در آذر 92 بجای rating بگذارید rating_sum و تست کنید 2 نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .