Anisi 301 ارسال شده در تیر 92 گزارش بازنشر ارسال شده در تیر 92 (ویرایش شده) سلام به دوستانیک کد نوشتم برای جستحو توی فیلدای اضافی، گفتم بذارم شاید به درد دوستان بخوره و اگرم اشکالی داره بچه ها گوشزد کنن.کد به صورت زیر هست:$args = array();$args['post_type'] = 'post';$args['cat'] = 1;if(!empty($_GET['dname']) or !empty($_GET['dlname']) or !empty($_GET['specialty'])){$args['meta_query'] = array();if(!empty($_GET['dname'])){ $name = esc_attr($_GET['dname']); $args['meta_query'][] = array( 'key' => 'doctor_name', 'value' => $name, 'compare' => 'LIKE' );}if(!empty($_GET['dlname'])){ $lname = esc_attr($_GET['dlname']); $args['meta_query'][] = array( 'key' => 'doctor_lname', 'value' => $lname, 'compare' => 'LIKE' );}if(!empty($_GET['specialty'])){ $spe_all = array(); foreach($_GET['specialty'] as $spe) { $spe_all[] = esc_attr($spe); } $args['meta_query'][] = array( 'key' => 'doctor_specialty', 'value' => $spe_all, 'compare' => 'IN' );}}$the_query = new WP_Query($args);نمونه اجرا شدش رو هم می تونید توی آدرس زیر ببینید:http://www.bezeshk.c...سته/پزشکان-یزد/حالا مثلا این مشکلی هست که مقدار ورودی از get رو با تابع esc_attr، eascape کردم؟راستی یه مشکل دیگه هم هست که همه اطلاعات رو دوبار میاردش توی دو صفحه یعنی نتایج تکراری هستن.لطفا اگر اشکال دیگه ای بود حتما گوشزد کنید.ممنون ویرایش شده تیر 92 توسط Anisi 2 نقل قول لینک به ارسال
Parsa 23463 ارسال شده در تیر 92 گزارش بازنشر ارسال شده در تیر 92 نکته ای که در استفاده از متاکوئری مهم هست مشخص کردن نوع پست هست که شما رعایت کردیداسکیپ کردن مشکلی ندارد. هر چند خود وردپرس احمالا چنین کاری رو انجام میدهدوبار؟ منظورتون صفحه بندی هست. شما باید مقدار page رو هم تنظیم کنید 3 نقل قول لینک به ارسال
Anisi 301 ارسال شده در تیر 92 مالک گزارش بازنشر ارسال شده در تیر 92 (ویرایش شده) نکته ای که در استفاده از متاکوئری مهم هست مشخص کردن نوع پست هست که شما رعایت کردیداسکیپ کردن مشکلی ندارد. هر چند خود وردپرس احمالا چنین کاری رو انجام میدهدوبار؟ منظورتون صفحه بندی هست. شما باید مقدار page رو هم تنظیم کنیدممنونبله! اگر مشاهده کرده باشید، برای نتایج دو صفحه اومده، ولی نتایج هر دو صفحه یکسان هست! کد زیر رو هم به کوئری اضافه کردم ولی هنوز مشکل پابرجاست:$args['posts_per_page']= 15; ویرایش شده تیر 92 توسط Anisi نقل قول لینک به ارسال
Anisi 301 ارسال شده در تیر 92 مالک گزارش بازنشر ارسال شده در تیر 92 http://forum.wp-pars...ر-دسته-اختصاصی/ممنونمشکل حل شد ولی یک مشکل دیگه هست. وقتی جستحو انجام میشه، 2 صفحه میاره! در حالی که صفحه دوم خالیه. نقل قول لینک به ارسال
Parsa 23463 ارسال شده در تیر 92 گزارش بازنشر ارسال شده در تیر 92 از افزونه واسه صفحه بندی استفاده میکنید؟بهتره قبل از کوئری ریست رو قرار دهید 1 نقل قول لینک به ارسال
Anisi 301 ارسال شده در تیر 92 مالک گزارش بازنشر ارسال شده در تیر 92 از افزونه واسه صفحه بندی استفاده میکنید؟بهتره قبل از کوئری ریست رو قرار دهیدنه. از این تابع استفاده می کنم://Navigation Functionfunction wp_corenavi() { global $wp_query, $wp_rewrite; $pages = ''; $max = $wp_query->max_num_pages; if (!$current = get_query_var('paged')) $current = 1; $a['base'] = str_replace(999999999, '%#%', get_pagenum_link(999999999)); $a['total'] = $max; $a['current'] = $current; $total = 1; //1 - display the text "Page N of N", 0 - not display $a['mid_size'] = 10; //how many links to show on the left and right of the current $a['end_size'] = 1; //how many links to show in the beginning and end $a['prev_text'] = 'صفحه قبل'; //text of the "Previous page" link $a['next_text'] = 'صفحه بعد'; //text of the "Next page" link if ($max > 1) echo '<div class="pagination">'; if ($total == 1 && $max > 1) $pages = '<span class="pages">صفحه ' . $current . ' از ' . $max . '</span>'."\r\n"; echo $pages . paginate_links($a); if ($max > 1) echo '</div>';}ریست رو هم قرار دادم. تفاوتی نکرد. اصلا نباید صفحه دومی رو بیاره، نمی دونم چرا میاره! نقل قول لینک به ارسال
Morteza 34190 ارسال شده در تیر 92 گزارش بازنشر ارسال شده در تیر 92 من جای شما بودم کمتر از wp_query استفاده میکردم و بیشتر از query_posts استفاده میکردم 1 نقل قول لینک به ارسال
Anisi 301 ارسال شده در تیر 92 مالک گزارش بازنشر ارسال شده در تیر 92 (ویرایش شده) من جای شما بودم کمتر از wp_query استفاده میکردم و بیشتر از query_posts استفاده میکردمآخه یه جایی خوندم نوشته بود از این استفاده کنید بهتره.ممنون درست شد. پس کد کامل شده به صورت زیر هست: <?php $args = array(); $args['post_type'] = 'post'; $args['cat'] = 17; $args['paged'] = (get_query_var('paged')) ? get_query_var('paged') : 1; if(!empty($_GET['dname']) or !empty($_GET['dlname']) or !empty($_GET['specialty'])) { $args['meta_query'] = array(); if(!empty($_GET['dname'])) { $name = esc_attr($_GET['dname']); $args['meta_query'][] = array( 'key' => 'doctor_name', 'value' => $name, 'compare' => 'LIKE' ); } if(!empty($_GET['dlname'])) { $lname = esc_attr($_GET['dlname']); $args['meta_query'][] = array( 'key' => 'doctor_lname', 'value' => $lname, 'compare' => 'LIKE' ); } if(!empty($_GET['specialty'])) { $spe_all = array(); foreach($_GET['specialty'] as $spe) { $spe_all[] = esc_attr($spe); } $args['meta_query'][] = array( 'key' => 'doctor_specialty', 'value' => $spe_all, 'compare' => 'IN' ); } } query_posts($args); ?> ویرایش شده تیر 92 توسط Anisi نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .