1 پست در این موضوع قرار دارد

سلام

من با كمك واكر كاري كردم كه تكسونومي دلخواهم رو با 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;

حالا من چگونه اينا رو با هم مچ كنم تا هنگامي كه روي يك چك‌باكس ترم كليك كردم، اسلاگ اون چك باكس رو به نشاني اضافه كنه؟

 

سپاس براي راهنمايي و كمك

0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط samen
      سلام دوستان
      اگه امکانش هست لطف کنید تو سایت جی تی متریکس سایت ما رو چک کنید و بفرمایید چه کارهایی دقیقا باید انجام بدیم تا سرعت لود سایت بهبود پیدا کنه؟
      با افزونه های مینی فای و فشرده سازی انجام دادیم اما جواب نداد
      آدرس سایت: https://Mosalman.Net
       
      سؤال بعدی اینه که چطور میشه فایل های جاوا اسکریپت رو ادغام کرد.
      ما 10 تا فایل داریم که عبارتند از:
       
      https://mosalman.net/wp-content/themes/Newspaper/js/tagdiv_theme.min.js?ver=8.8

      https://mosalman.net/wp-includes/js/jquery/jquery.js?ver=1.12.4

      https://www.googletagmanager.com/gtag/js?id=UA-116992895-1

      https://mosalman.net/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.4.1

      http://mosalman.net/wp-content/plugins/a3-lazy-load/assets/js/jquery.lazyloadxt.extra.min.js?ver=1.9.1

      https://mosalman.net/wp-includes/js/wp-embed.min.js?ver=4.9.8

      http://mosalman.net/wp-content/plugins/a3-lazy-load/assets/js/jquery.lazyloadxt.srcset.min.js?ver=1.9.1

      https://mosalman.net/wp-includes/js/comment-reply.min.js?ver=4.9.8

      http://mosalman.net/wp-content/plugins/a3-lazy-load/assets/js/jquery.lazyloadxt.extend.js?ver=1.9.1

      https://mosalman.net/wp-content/plugins/add-to-any/addtoany.min.js?ver=1.1
       
      اگر بخواهیم این کدها رو ادغام و با هم دیگه ترکیب کنیم؛ به ترتیب بفرمائید که کدوم یک را از اول تا آخر باید کپی پیست کنیم در یک فایل.
      باسپاس از پاسخ دوستان
       
       
       
    • توسط amzzm75
      باسلام و احترام قالبی که من استفاده میکنم تعداد زیادی فایل css و javascript داره به طوری که تعداد درخواست ها به سرور منو زیاد کرده به طوری که وقتی با gtmetrix تست میکنم میزنه 150 درخواست به سرور و به فشرده نبودن و تعداد زیاد فایل ها ایراد میگیره من یه بار اومدم با سایتایی که این فایلا رو فشرده میکنن فشردشون کردم اما فونت و ظاهر بعضی قسمت های سایت بهم ریخت و مجبور شدم به حالت قبل برش گردونم موندم چیکار کنم که تعداد فایل ها کم بشه تا سرعت لود سایت بالاتر بره و سایت بهینه بشه لطفا راهنمایی کنین 
      آدرس سایت من:umagazine.ir
    • توسط mina94
      سلام دوستاي عزيز لطفا يه سر به اين سايت بزنيد و بگيد چرا جاوا اسكريپتي كه طراحي كردم براي سايت با زوم اين و آوت شدن نمايش دادنش فرق مي كنه و درست نمايشش نميده؟  http://www.sakhtbazar.com/
      البته تو دستگاه هاي مختلف متفاوته و فرق مي كنه.نميشه يه جوريش كرد كه كلا ثابت بمونه و با زوم كردن عوض نشه مقدار نمايشش؟
      قبلا فلش كار كرده بودم ولي حجمش زياد بود و تو تموم دستگاه ها هم كارنمي كرد به خاطر همين عوضش كردم 
       
    • توسط DariushGreat
      سلام
      من با کمک افزونه چند متای چک‌باکس برای کاربری تعریف کردم. از کد زیر برای نمایش در پوسته بهره می‌گیرم:
      echo get_the_author_meta('my_field', $author_id); ولی هنگامی که می‌خوام در پوسته نشونش بدم به شکل آرایه‌ای میاره. یعنی اینجوری
      مقدار 1| مقدار 2| مقدار 3| مشکل من اینه که می‌خوام با نمایش هر مقدار یک چیزی توی بخش کاربری رخ بده. برای نمونه کاربر هر سه چک‌باکس رو تیک زده و هر سه مقدار در آرایه متا هست. با وجود " مقدار 1 " اون رو جداگانه با یک جمله نمایش بده. با وجود " مقدار 2 " باز هم جداگانه و با یک جمله نشون بده و... . به عبارتی به شکل زیر:
       
      چی کار باید کنم؟
      ممنون برای کمک
    • توسط .Ibrahim
      درود
      دوستان من تو سایتم از یه Iframe استفاده میکنم که کد صلوات شمار هست، که از این صفحه:


      http://gonak.ir/salavatt/index.php

      برای صفحه اصلی سایتم، با این کد فراخوانی میشه:


      <iframe name="صلوات شمار" frameborder="0" scrolling="no" style="left:0px;top:0px; margin:0px; padding:0px; position:fixed; z-index:1000; width:82px; height:48px;" src="http://gonak.ir/salavatt/index.php"></iframe>

      حالا میخوام اگه بشه از کد جاوا بجای iframe استفاده کنم، لطفا راهنمایی کنید، اصلا امکانش هست؟