رفتن به مطلب

اضافه کردن فیلد به همه ابزارک ها


پست های پیشنهاد شده

سلام . میخام یک فیلد input با نوع text به همه ی ابزارک ها اضاف بشه و بتونم متنی که توی فیلد نوشته میشه رو در جای دلخواه از ابزارک نمایش بدم . افزونه هم نمیخام . میخام با کد باشه . اگر میشه کمکم کنید . :rolleyes:  چون همه ی منابع خارجی و ایرانی رو گشتم و چیزی دستگیرم نشد ! :wacko:

کد زیر تیکه ای ابزارک بنده هست که جز قسمت before_title محسوب میشه :

<div data-n="متن وارد شده در فیلد جدید"></div>

 

لینک به ارسال

سلام. برای اضافه کردن فیلد به این صورت قرار بدید :

add_action('in_widget_form', 'Plugins_form_hook');
/**
 * Hooks to the plugins form and adds a custome field to them 
 */
function plugins_form_hook($widget_instance){
    $widget_options_all = get_option($widget_instance->option_name);
    $settings = '';
    if(isset($widget_instance->number) && isset($widget_options_all[$widget_instance->number]['wpsrcIcon']) ){
        $settings = $widget_options_all[$widget_instance->number]['wpsrcIcon'];
    }
?>
<label for="<?php echo $widget_instance->get_field_id('wpsrcIcon'); ?>">نام کامل آیکون و افکت: </label>
<input style="direction:ltr;" type="text" id="<?php echo $widget_instance->get_field_id('wpsrcIcon'); ?>" name="<?php echo $widget_instance->get_field_name('wpsrcIcon'); ?>" value="<?php echo $settings; ?>">
<?php
}

 

برای ذخیره ی مقدارش به این صورت :

add_filter( 'widget_update_callback', 'wpsrc_widgets_update_callback', null, 4 );
/**
 * Saves the value of choosen icon
 */
function wpsrc_widgets_update_callback($instance, $new_instance, $old_instance, $instanceObj){
    $instance['wpsrcIcon'] = ( ! empty( $new_instance['wpsrcIcon'] ) ) ? $new_instance['wpsrcIcon']  : '';
    return $instance;
}

 

و برای تعیین نحوه استفادش توی خروجی ویجت هم به این صورت :

 

add_filter('widget_display_callback', 'wpsrc_widgets_display_hook', null, 3);
/**
 * Hooks to the plugins title and outputs the selected icon
 */
function wpsrc_widgets_display_hook($instance, $widget_class, $args){
    if (!isset($instance['wpsrcIcon'])) {
        return $instance;
    }
 
    $instance['title'] =  '<span class="dashicons' . $instance['wpsrcIcon'] . '"></span>' . $instance['title'];
    remove_filter( 'widget_title', 'esc_html' );
    return $instance;
}

 

اگر هم قصدتون قرار دادن چیزی مثل آیکون برای ابزارک ها هست که آموزشش توی سایتم هست (این تکه کدها رو از همون آموزش براتون قرار دادم)

  • امتیاز 1
لینک به ارسال
در 1 ساعت قبل، فرحان گفته است :

سلام. برای اضافه کردن فیلد به این صورت قرار بدید :


add_action('in_widget_form', 'Plugins_form_hook');
/**
 * Hooks to the plugins form and adds a custome field to them 
 */
function plugins_form_hook($widget_instance){
    $widget_options_all = get_option($widget_instance->option_name);
    $settings = '';
    if(isset($widget_instance->number) && isset($widget_options_all[$widget_instance->number]['wpsrcIcon']) ){
        $settings = $widget_options_all[$widget_instance->number]['wpsrcIcon'];
    }
?>
<label for="<?php echo $widget_instance->get_field_id('wpsrcIcon'); ?>">نام کامل آیکون و افکت: </label>
<input style="direction:ltr;" type="text" id="<?php echo $widget_instance->get_field_id('wpsrcIcon'); ?>" name="<?php echo $widget_instance->get_field_name('wpsrcIcon'); ?>" value="<?php echo $settings; ?>">
<?php
}

 

برای ذخیره ی مقدارش به این صورت :


add_filter( 'widget_update_callback', 'wpsrc_widgets_update_callback', null, 4 );
/**
 * Saves the value of choosen icon
 */
function wpsrc_widgets_update_callback($instance, $new_instance, $old_instance, $instanceObj){
    $instance['wpsrcIcon'] = ( ! empty( $new_instance['wpsrcIcon'] ) ) ? $new_instance['wpsrcIcon']  : '';
    return $instance;
}

 

و برای تعیین نحوه استفادش توی خروجی ویجت هم به این صورت :

 


add_filter('widget_display_callback', 'wpsrc_widgets_display_hook', null, 3);
/**
 * Hooks to the plugins title and outputs the selected icon
 */
function wpsrc_widgets_display_hook($instance, $widget_class, $args){
    if (!isset($instance['wpsrcIcon'])) {
        return $instance;
    }
 
    $instance['title'] =  '<span class="dashicons' . $instance['wpsrcIcon'] . '"></span>' . $instance['title'];
    remove_filter( 'widget_title', 'esc_html' );
    return $instance;
}

 

اگر هم قصدتون قرار دادن چیزی مثل آیکون برای ابزارک ها هست که آموزشش توی سایتم هست (این تکه کدها رو از همون آموزش براتون قرار دادم)

 

بسیار بسیار متشکرم . بله دقیقا قصدم قراردادن ایکن هست  .

لینک به ارسال
در ۱ ساعت قبل، PRGAME گفته است :

میشه کاری کرد که اگر چیزی درون input  وارد نشده بود کلا span نمایش داده نشه ؟

کاری نداره این کار. یه شرط بزارید اگر توی اون instance['icon'] چیزی وارد نشده بود، اصلا نشون داده نشه.

لینک به ارسال
در 24 دقیقه قبل، PRGAME گفته است :

من خیلی با php اشنا نیستم . میشه زحمتش رو بکشید ؟

 

 

در 25 دقیقه قبل، PRGAME گفته است :

من خیلی با php اشنا نیستم . میشه زحمتش رو بکشید ؟

 

$icon = instance['icon'];
if ( ! empty( $icon ) ) {
           //کد نمایش هر چیزی که خواستین

}

کد بالا کاری می کنه که اگه داخل input  بود نشون داده میشه در غیر این صورتش هیچ چیزی نمایش داده نمیشه

  • امتیاز 2
لینک به ارسال

قسمت سوم کد یعنی :

add_filter('widget_display_callback', 'wpsrc_widgets_display_hook', null, 3);
/**
 * Hooks to the plugins title and outputs the selected icon
 */
function wpsrc_widgets_display_hook($instance, $widget_class, $args){
    if (!isset($instance['wpsrcIcon'])) {
        return $instance;
    }
 
    $instance['title'] =  '<span class="dashicons' . $instance['wpsrcIcon'] . '"></span>' . $instance['title'];
    remove_filter( 'widget_title', 'esc_html' );
    return $instance;
}

 

رو به صورت :

 

add_filter('widget_display_callback', 'wpsrc_widgets_display_hook', null, 3);
/**
 * Hooks to the plugins title and outputs the selected icon
 */
function wpsrc_widgets_display_hook($instance, $widget_class, $args){
    if (!isset($instance['wpsrcIcon'])) {
        return $instance;
    }
 
	$span = '<span class="dashicons' . $instance['wpsrcIcon'] . '"></span>';
    $instance['title'] = ( ( !empty( $instance['wpsrcIcon'] ) )? $span : '' ) . $instance['title'];
    remove_filter( 'widget_title', 'esc_html' );
    return $instance;
}

دربیارید.

  • امتیاز 2
لینک به ارسال

لطفا برای ارسال دیدگاه وارد شوید

شما بعد از اینکه وارد حساب کاربری خود شدید می توانید دیدگاهی ارسال کنید



ورود به حساب کاربری
×
×
  • اضافه کردن...