shima26 18 ارسال شده در خرداد 94 گزارش بازنشر ارسال شده در خرداد 94 (ویرایش شده) با سلام !من درحال ایجاد یک فرم جستجو برای یک سایت هستم افزونه های مختلفی رو تست کردم ولای اونی که من میخوام نشدن به همین دلیل دنبال کدش گشتم اما به یک مشکالخ وردممی خوام یک فرم جستجو درست کنم به همراه انتخاب تاکسومی که با اینش مشکلی ندارمبرای جستجو توی یک تاکسونوی خاص مثلا اسم تاکسونومی ژانر باشه با کد زیر تونستم فرم رو بسازم:<form role="search" method="get" id="searchform" action="<?php bloginfo('home'); ?>/ff"><div><input type="text" value="" name="s" id="s" /><?phpfunction get_terms_dropdown($taxonomies, $args){$myterms = get_terms($taxonomies, $args);$optionname = "optionname";$emptyvalue = "";$output ="<select name='".$optionname."'><option selected='".$selected."' value='".$emptyvalue."'>Select a Category</option>'";foreach($myterms as $term){$term_taxonomy=$term->janr;$term_slug=$term->slug;$term_name =$term->name;$link = $term_slug;$output .="<option name='".$link."' value='".$link."'>".$term_name."</option>";}$output .="</select>";return $output;}$taxonomies = array('janr');$args = array('order'=>'ASC','hide_empty'=>true);echo get_terms_dropdown($taxonomies, $args);?><input type="submit" id="searchsubmit" value="Search" /></div></form>اما مشکل اینه که نمیخوام از قالب پیشفرض search.php استفاده بشه میخوام فرم اکشن بشه به یک برگه دیگه و توی اون برگه بررسی بشه پست با اون کلمه توی تاکسونمی که از لیست انتخاب شده هست و اونا رو توی حلقه نشون بدهممنون میشم دوستان کمک کنن اون برگه رو بسازم ویرایش شده خرداد 94 توسط shima26 نقل قول لینک به ارسال
imanfakhar 26231 ارسال شده در خرداد 94 گزارش بازنشر ارسال شده در خرداد 94 به تگ form اضافه کنید target="_blank"تا در صفحه دیگه باز بشه اگر می خواهید قالب جداگانه برای نمایش نتایج داشته باشید این مطلب را بخوانید https://codex.wordpress.org/Creating_a_Search_Pageیا فایل search.php در قالبتون ایجاد و شخصی سازیش کنید. 2 نقل قول لینک به ارسال
shima26 18 ارسال شده در خرداد 94 مالک گزارش بازنشر ارسال شده در خرداد 94 (ویرایش شده) ممنون اما مشکل اینه که توی اون صفحه نمی تونم مقدار تاکسونومی انتخابی رو بگیرم!مشکل اصلی اینه که نمی تونم مقادیر رو بگیمم و توی برگه جستجویعنی فرم اکشن بشه به یک صفحه که توی اون صفحه مقادیر چک بشه و فقط توی همون تاکسونومی که از منوی بازشو انتخاب شده جستجو انجام بشهالان اکشن فرم به برگه با آدرس localhost/ff هست کد های php برگه ff نمیدونم باید چی باشه؟ ویرایش شده خرداد 94 توسط shima26 نقل قول لینک به ارسال
imanfakhar 26231 ارسال شده در خرداد 94 گزارش بازنشر ارسال شده در خرداد 94 نام سلکتور ترمهاتون باید term باشه که الان optionname گذاشتید option ها نباید name داشته باشند تا نتیجشون در خروجی select قرار بگیره اکشنتون باید <?php bloginfo('url'); ?>باشه و تابعتون باید به فایل functions.php منتقل بشه یعنی این بخش بعد از اصلاح مواردی که عرض شد function get_terms_dropdown($taxonomies, $args){$myterms = get_terms($taxonomies, $args);$optionname = "optionname";$emptyvalue = "";$output ="<select name='".$optionname."'><option selected='".$selected."' value='".$emptyvalue."'>Select a Category</option>'";foreach($myterms as $term){$term_taxonomy=$term->janr;$term_slug=$term->slug;$term_name =$term->name;$link = $term_slug;$output .="<option name='".$link."' value='".$link."'>".$term_name."</option>";}$output .="</select>";return $output;}با رعایت این موارد اگر یک حلقه ی معمولی در فایل search.php در هر قالبی که خواستید بسازید باید نتایج رو درست نشون بدهببخشید این مقدار هم باید تغییر کنه $link = $term_slug;به $link = $term->ID; نقل قول لینک به ارسال
shima26 18 ارسال شده در خرداد 94 مالک گزارش بازنشر ارسال شده در خرداد 94 (ویرایش شده) با تشکر از شما اگه درست متوجه شده باشم کد ها رو به این صورت وارد کردم که نتیجه ای در بر نداشت من زیاد حرفه ایی نیستم ممنون میشم یکم با جزئیات بیشتر توضیح بدید یک هقفته است امونمو بریده :|اینا رو گذاشتم توی فایل functions.php<?phpfunction get_terms_dropdown($taxonomies, $args){$myterms = get_terms($taxonomies, $args);$optionname = "term";$emptyvalue = "";$output ="<select><option selected='".$selected."' value='".$emptyvalue."'>Select a Category</option>'";foreach($myterms as $term){$term_taxonomy=$term->gener;$term_slug=$term->slug;$term_name =$term->name;$link = $term->ID;$output .="<option value='".$link."'>".$term_name."</option>";}$output .="</select>";return $output;} ?>و این هم برای نمایش فرم<form role="search" method="get" id="searchform" action="<?php bloginfo('url'); ?>"><div><input type="text" value="" name="s" id="s" /><?php$taxonomies = array('gener');$args = array('order'=>'ASC','hide_empty'=>true);echo get_terms_dropdown($taxonomies, $args);?><input type="submit" id="searchsubmit" value="Search" /></div></form>اما بعد از ارسال فرم توی کل سایت جستجو میکنه و اون تاکسونومی که انتخاب شده رو در نظر نمیگیره !!!!مورد دیگه ایی هم که هست اینه که میخوام از این فرم دوتا توی یک صفحه بذارم ویرایش شده خرداد 94 توسط shima26 نقل قول لینک به ارسال
imanfakhar 26231 ارسال شده در خرداد 94 گزارش بازنشر ارسال شده در خرداد 94 1. کد $taxonomies = array('gener');باید قبل از $myterms = get_terms($taxonomies, $args); در functions.php قرار بگیره2. تاکسونامیتون رو با چه کدهایی ساختید؟3. مشخص کنید شما دقیقا می خواهید عبارت در تمام مطالبی که تاکسونامی gener دارند جستجو بشه یا می خواهید بین ترمها (دسته های تاکسونامی جستجو بشه) مثلا فرض کنید تاکسونامی من عنوانش هست هنرمندان و نام صد خواننده در اون لیست شدند که از هر خواننده تعدادی مطلب در سایت داریم حالا کاربر قراره نام خواننده دلخواهش رو جستجو کنه و ببینه در بین هنرمندان هست یا نه و یا مثلا آهنگ خاصی از افتخاری در سایت موجوده یا خیر (هرکدام راه خودش رو داره و خیلی با هم متفاوتند) 1 نقل قول لینک به ارسال
shima26 18 ارسال شده در خرداد 94 مالک گزارش بازنشر ارسال شده در خرداد 94 (ویرایش شده) استاد ممنون از لطفتونبا این کد ها تاکسونومی رو ساختم برای پست تایپ film<?phpadd_action( 'init', 'create_gener_taxonomy', 0 );function create_gener_taxonomy() {$labels = array('name' => _x( 'ژانر', 'taxonomy general name' ),'singular_name' => _x( 'ژانر ', 'taxonomy singular name' ),'search_items' => __( 'جستجوی ژانر ها' ),'all_items' => __( 'همه ژانر ها' ),'parent_item' => __( 'ژانر والد' ),'parent_item_colon' => __( 'ژانر والد:' ),'edit_item' => __( 'ویرایش ژانر' ),'update_item' => __( 'به روز رسانی ژانر' ),'add_new_item' => __( 'افزودن ژانر جدید' ),'new_item_name' => __( 'نام ژانر جدید' ),'menu_name' => __( 'ژانر ها' ),);$args = array('hierarchical' => false,'labels' => $labels,'show_ui' => true,'show_admin_column' => true,'query_var' => true,'rewrite' => array( 'slug' => 'gener' ),);register_taxonomy( 'gener', array( 'film' ), $args );}?>توی سایت چند تا دسته برای تاکسونامی ژانر درست کردم مثلا درام هیجانی کمدی و.. که به مرورو اضافه میشه توسط کاربر حالا میخوام کلمه مورد نظر + اون ژانر که مثلا کمدی از لیست انتخاب میشه فقط جستجو بشه و لیست پست هایی ( فیلم هایی ) که شامل اون کلمه و در کمدی هستند جستجو بشه(کمدی از لیست بازشو انتخاب میشه و ممکنه از لیست مثلا درام انتخاب بشه اونوقت باید اون کلمه در دسته درام جستجو بشه و لیست فیلم ها رو بیاره ) ویرایش شده خرداد 94 توسط shima26 نقل قول لینک به ارسال
imanfakhar 26231 ارسال شده در خرداد 94 گزارش بازنشر ارسال شده در خرداد 94 اکشن فرمتون رو بگذارید <?php bloginfo('url');?>/gener/وتست کنید 1 نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .