How to create custom widget in advance custom fields wordpress

Hello developers, Today I am going to show you how to create custom widget in ACF wordpress.

Please follow below steps:

Step-1:  Create a new file and name it acf-custom-widget.php.  Put it into your theme’s     plugins>advanced-custom-fields directory.

Step-2:  Put below code in your functions.php file.

require( ABSPATH .'/wp-content/plugins/advanced-custom-fields/acf-custom-widget.php' );

Step-3:  Put below code in your acf-custom-widget.php file.

<?php
/*
  A custom ACF widget.
*/
class ACF_Custom_Widget extends WP_Widget {
    function __construct() {
        parent::__construct(
            'acf_custom_widget', // Base ID
            __('ACF Custom Widget', 'text_domain'), // Name
            array( 'description' => __( 'A custom ACF widget', 'text_domain' ), 'classname' => 'acf-custom-widget' ) // Args
        );
    }

    public function widget( $args, $instance ) {
        echo $args['before_widget'];
        if ( !empty($instance['title']) ) {
            echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ). $args['after_title'];
        }
        echo get_field('title', 'widget_' . $args['widget_id']);
        // Place your ACF code here
		echo $args['after_widget'];
    }

    public function form( $instance ) {
        if ( isset($instance['title']) ) {
            $title = $instance['title']; 
        }
    ?>
    <p>
      <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title' ); ?></label>
      <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>
    <?php
    }

    public function update( $new_instance, $old_instance ) {
        $instance = array();
        $instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';
        return $instance;
    }
} 
add_action( 'widgets_init', function(){
  register_widget( 'ACF_Custom_Widget' );
});

When you create new field group, you can select ACF custom widget. You can see in below screenshot.

I hope this article is useful for you.

Thank you. 🙂

Blog Catagory : WORDPRESS