DariushGreat 94 ارسال شده در اسفند 94 گزارش بازنشر ارسال شده در اسفند 94 سلام من با كمك واكر كاري كردم كه تكسونومي دلخواهم رو با wp_list_categories به گونه چكباكس نمايش بدم. كد واكر تبديل كننده فهرست دستهبندي به چكباكس دسته بندي: class Walker_Category_Checklist extends Walker { public $tree_type = 'category'; public $db_fields = array ('parent' => 'parent', 'id' => 'term_id'); //TODO: decouple this public function start_lvl( &$output, $depth = 0, $args = array() ) { $indent = str_repeat("\t", $depth); $output .= "$indent<ul class='children'>\n"; } public function end_lvl( &$output, $depth = 0, $args = array() ) { $indent = str_repeat("\t", $depth); $output .= "$indent</ul>\n"; } public function start_el( &$output, $category, $depth = 0, $args = array(), $id = 0 ) { if ( empty( $args['taxonomy'] ) ) { $taxonomy = 'category'; } else { $taxonomy = $args['taxonomy']; } if ( $taxonomy == 'category' ) { $name = 'post_category'; } else { $name = 'tax_input[' . $taxonomy . ']'; } $args['popular_cats'] = empty( $args['popular_cats'] ) ? array() : $args['popular_cats']; $class = in_array( $category->term_id, $args['popular_cats'] ) ? ' class="popular-category"' : ''; $args['selected_cats'] = empty( $args['selected_cats'] ) ? array() : $args['selected_cats']; if ( ! empty( $args['list_only'] ) ) { $aria_cheched = 'false'; $inner_class = 'category'; if ( in_array( $category->term_id, $args['selected_cats'] ) ) { $inner_class .= ' selected'; $aria_cheched = 'true'; } /** This filter is documented in wp-includes/category-template.php */ $output .= "\n" . '<li' . $class . '>' . '<div class="' . $inner_class . '" data-term-id=' . $category->term_id . ' tabindex="0" role="checkbox" aria-checked="' . $aria_cheched . '">' . esc_html( apply_filters( 'the_category', $category->name ) ) . '</div>'; } else { /** This filter is documented in wp-includes/category-template.php */ $output .= "\n<li id='{$taxonomy}-{$category->term_id}'$class>" . '<label class="selectit"><input value="' . $category->term_id . '" type="checkbox" name="'.$name.'[]" id="in-'.$taxonomy.'-' . $category->term_id . '"' . checked( in_array( $category->term_id, $args['selected_cats'] ), true, false ) . disabled( empty( $args['disabled'] ), false, false ) . ' /> ' . esc_html( apply_filters( 'the_category', $category->name ) ) . '</label>'; } } public function end_el( &$output, $category, $depth = 0, $args = array() ) { $output .= "</li>\n"; } } و كدي كه باهاش نمايش ميدم: $args = array( 'taxonomy' => 'brands', 'walker' => new Walker_Category_Checklist, ); wp_list_categories( $args ); و اما كد جاوايي كه كارش اينه كه با وارسي نشاني كنوني، ميتونه اون رو به نشاني دلخواه تغيير بده: URL = document.URL; if(URL.indexOf('نشاني 1') != -1) URL = URL.replace('نشاني 1','نشاني 2'); else URL = URL.replace('نشاني 2','نشاني 1'); window.location = URL; حالا من چگونه اينا رو با هم مچ كنم تا هنگامي كه روي يك چكباكس ترم كليك كردم، اسلاگ اون چك باكس رو به نشاني اضافه كنه؟ سپاس براي راهنمايي و كمك نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .