reza_yki

مشکل در ابزارک اختصاصی

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

سلام من ابزارکی نوشتم که کاربر بتونه به وسیله select option به صورتی multi بتونه چندین دسته رو انتخاب کنه همه چیز درست و بدون مشکل کار میکنه فقط یه مشکل هست اونم اینه که وقتی ابزارک رو برای اولین بار فعال میکنی خطای زیر رو میده وباید یه دونه دسته رو انتخاب و ذخیره کنی تا ابزارک به صورت صحیح کارکنه لطفا راهنماییم کنید.

Warning:  in_array() expects parameter 2 to be array, string given in E:\Program Files\xampp\htdocs\wordpress\wp-content\themes\mymag\functions\widgets\widgets.php on line 29

 

اینم سورس کد:

<?php
public function form( $instance ) {
        $title = ! empty( $instance['title'] ) ? $instance['title'] : esc_html__( 'عنوان ابزارک', 'text_domain' );
        $args = array(
            'hide_empty'       => 0,
            'type'             => 'post',
            'taxonomy'         => 'category',
            'orderby'          => 'name',
            'hierarchical'     => true,
        );
        $cats = get_categories( $args );
        $instance['cat_id'] = isset( $instance['cat_id'] ) ? ( $instance['cat_id'] ) : '1';
        $count_cat = isset ($instance['cat_id']) ? count($instance['cat_id']) : '1' ;
        $tab_number = isset( $count_cat ) ? absint( $count_cat ) : 1;
        ?>
        <p>
            <label for="<?php echo $this->get_field_name( 'title' ); ?>"><?php _e( 'Title:' ); ?></label><br>
            <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
        </p>

        <p>
            <label for="<?php echo $this->get_field_id('tab_number'); ?>"><?php _e( 'تعداد زبانه:'); ?></label><br>
            <input id="<?php echo $this->get_field_id('tab_number'); ?>" name="<?php echo $this->get_field_name('tab_number'); ?>" type="number" min="0" class="my_widget_number" value="<?php echo $tab_number; ?>" size="3" />
        </p>
        <label for="<?php echo $this->get_field_name( 'cat_id' ); ?>"><?php _e( 'انتخاب دسته بندی : ' ); ?></label>
        <select id="<?php echo $this->get_field_id( 'cat_id' ); ?>" name="<?php echo $this->get_field_name( 'cat_id[]' ); ?>" multiple="multiple" style="width: 100%; margin: 10px auto; height: auto;">
            <?php    foreach( $cats as  $cat ): ?>
            <option value="<?php echo esc_attr(__($cat->term_id)); ?>"<?php  selected(in_array($cat->term_id, $instance['cat_id']));  // selected($cat->term_id,$cats_id)  ?>><?php echo esc_attr(__($cat->name)); ?></option>
            <?php  endforeach; ?>
        </select>
        <p>
            <input type="text" value="<?php echo esc_attr(__(implode(',', $instance['cat_id']))); ?>">
        </p>

        <?php
    }

 

0

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


لینک به پست

ارسال شده در (ویرایش شده)

در 8 ساعت قبل، reza_yki گفته است :

سلام من ابزارکی نوشتم که کاربر بتونه به وسیله select option به صورتی multi بتونه چندین دسته رو انتخاب کنه همه چیز درست و بدون مشکل کار میکنه فقط یه مشکل هست اونم اینه که وقتی ابزارک رو برای اولین بار فعال میکنی خطای زیر رو میده وباید یه دونه دسته رو انتخاب و ذخیره کنی تا ابزارک به صورت صحیح کارکنه لطفا راهنماییم کنید.


Warning:  in_array() expects parameter 2 to be array, string given in E:\Program Files\xampp\htdocs\wordpress\wp-content\themes\mymag\functions\widgets\widgets.php on line 29

 

اینم سورس کد:

 

باسلام

اگر هاست دارید آنلاین با php 5.6 یا 7.0 امتحان کنید، نباید مشکلی باشه

ویرایش شده در توسط nazanin123
0

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


لینک به پست

وقتی برای اولین بار فعال میکنید $instance['cat_id'] مقدار نداره به همین خاطر خطا میده

میتونین اون قسمت رو به صورت زیر بنویسین

 selected(in_array($cat->term_id, (empty($instance['cat_id'])?array():$instance['cat_id']) ) );

 

3

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


لینک به پست

مشکل شما مربوط به کد زیر هست:

<?php  selected(in_array($cat->term_id, $instance['cat_id']));  // selected($cat->term_id,$cats_id)  ?>

ارور نمایش داده به این دلیل هست که میگه باید پارامتر دوم in_array ، آرایه باشه !

 

1

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


لینک به پست
در 5 ساعت قبل، lord_viper گفته است :

وقتی برای اولین بار فعال میکنید $instance['cat_id'] مقدار نداره به همین خاطر خطا میده

میتونین اون قسمت رو به صورت زیر بنویسین


 selected(in_array($cat->term_id, (empty($instance['cat_id'])?array():$instance['cat_id']) ) );

 

بسیار ممنون مشکل حل شد به کمک شما

0

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


لینک به پست

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

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

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

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


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

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

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


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

  • مطالب مشابه

    • توسط amirrezaweb
      با سلام 
      میخواستم بدونم چجوری میتونم یک صفحه مثل صفحه ای که اینجا لینکشو گذاشتم درست کنم افزونه ای میخواد آیا؟ منظورم خلاصه بودن مطلباشه
      https://www.yasdl.com/category/نرم-افزار-اینترنت/نرم-افزار-مرورگر
       
    • توسط prooshe
      سلام خسته نباشید.
      من بدون فعالسازی ssl و نصب افزونه از قسمت تنظیمات وردپرسم آدرس سایتم را از http به https تغییر دادم الان دیگه نه سایتم بالا میاد نه دسترسی به مدیریتم دارم تا دوباره ویرایش کنم لطفا راهنمایی کنید؟
    • توسط samadionline
      سلام خدمت شما عزیزان
      چطوری میشه در وردپرس مثل جوملا برای کاربران گروه و سطوح دسترسی تعریف کرد؟
      و همچنین اینکه در جوملا در تنظیمات میشد صفحه آفلاین تعریف کرد و کاربران با لاگین کردن وارد صفحه اصلی سایت میشدند در وردپرس چطور میشه این کار رو انجام داد؟
      تشکر می کنم اگر کسی سر در میاره یه توضیح مختصر بده
    • توسط ashkan91
      با سلام و خسته نباشید
      دوستان کسی میدونه چطور میشه فیلد ایمیل رو از تو فرم تسویه حساب ووکامرس غیرضروری کرد؟ (بدون استفاده از افزونه) یکی از دوستان این لینک رو فرستادن اما نمیدونم کدام تکه کد از این صفحه را میبایست درون کدهای سایت قرار بدم که مشکل حل بشه؟
      https://docs.woocommerce.com/document/tutorial-customising-checkout-fields-using-actions-and-filters/#example-make-phone-number-not-required
    • توسط aiinaz
      سلام دوستان 
       برای فونت من از @font face استفاده کردم تا فونتی که لازم دارم اعمال بشه اما نمی دونم چرا هر دفعه که صفحه رفرش میشه برای چند ثانیه فونت تغییر میکنه؟!!!! از نظر ادرس دهی هم درست انجام دادم و بعضی از فونت ها کلا اعمال نمیشه با اینکه روی سیستمم دارم؟!!!