Where to put my own Wordpress widgets code?

Inetinvestigator
17 Posts
Inetinvestigator posted this 24 January 2017

Hi Themler team,

where can i put my own wordpress widgets code if i want to deliver my own widgets along with the theme?
i tried field "CMS-CODE" in Theme settings which puts the code in "functions-additional.php" but it didn't work.

regards

oliver

Hi Themler team, where can i put my own wordpress widgets code if i want to deliver my own widgets along with the theme? i tried field "CMS-CODE" in Theme settings which puts the code in "functions-additional.php" but it didn't work. regards oliver
Vote to pay developers attention to this features or issue.
5 Comments
Order By: Standard | Newest
Support Team
Support Team posted this 24 January 2017

Hi,

What exactly code you're referring to?
You can add WordPress Widget area control (Insert tab) which creates the regular WP widget area where you can add widgets via WP admin panel >> Appearance >> Widgets.

Thank you,
Olivia

Hi, What exactly code you're referring to? You can add WordPress Widget area control (Insert tab) which creates the regular WP widget area where you can add widgets via WP admin panel >> Appearance >> Widgets. Thank you, Olivia
Inetinvestigator
17 Posts
Inetinvestigator posted this 24 January 2017

i want to develop my own widgets and deliver them along with the wordpress theme.
for example fetching and showing some extra data from rest services.

first i tried the simple example from wordpress.org

https://codex.wordpress.org/Widgets_API

and pasted this code into the field "CMS-Code" under Themler settings.

/**

* Adds Foo_Widget widget.
*/
class Foo_Widget extends WP_Widget {

/**
 * Register widget with WordPress.
 */
function __construct() {
    parent::__construct(
        'foo_widget', // Base ID
        esc_html__( 'Widget Title', 'text_domain' ), // Name
        array( 'description' => esc_html__( 'A Foo Widget', 'text_domain' ), ) // Args
    );
}

/**
 * Front-end display of widget.
 *
 * @see WP_Widget::widget()
 *
 * @param array $args     Widget arguments.
 * @param array $instance Saved values from database.
 */
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 esc_html__( 'Hello, World!', 'text_domain' );
    echo $args['after_widget'];
}

/**
 * Back-end widget form.
 *
 * @see WP_Widget::form()
 *
 * @param array $instance Previously saved values from database.
 */
public function form( $instance ) {
    $title = ! empty( $instance['title'] ) ? $instance['title'] : esc_html__( 'New title', 'text_domain' );
    ?>
    <p>
    <label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"><?php esc_attr_e( 'Title:', 'text_domain' ); ?></label> 
    <input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>">
    </p>
    <?php 
}

/**
 * Sanitize widget form values as they are saved.
 *
 * @see WP_Widget::update()
 *
 * @param array $new_instance Values just sent to be saved.
 * @param array $old_instance Previously saved values from database.
 *
 * @return array Updated safe values to be saved.
 */
public function update( $new_instance, $old_instance ) {
    $instance = array();
    $instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';

    return $instance;
}

} // class Foo_Widget

// register Foo_Widget widget
function register_foo_widget() {

register_widget( 'Foo_Widget' );

}
add_action( 'widgets_init', 'register_foo_widget' );

unfortunately this didn't work

i want to develop my own widgets and deliver them along with the wordpress theme. for example fetching and showing some extra data from rest services. first i tried the simple example from wordpress.org https://codex.wordpress.org/Widgets_API and pasted this code into the field "CMS-Code" under Themler settings. /** * Adds Foo_Widget widget. */ class Foo_Widget extends WP_Widget { /** * Register widget with WordPress. */ function __construct() { parent::__construct( 'foo_widget', // Base ID esc_html__( 'Widget Title', 'text_domain' ), // Name array( 'description' => esc_html__( 'A Foo Widget', 'text_domain' ), ) // Args ); } /** * Front-end display of widget. * * @see WP_Widget::widget() * * @param array $args Widget arguments. * @param array $instance Saved values from database. */ 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 esc_html__( 'Hello, World!', 'text_domain' ); echo $args['after_widget']; } /** * Back-end widget form. * * @see WP_Widget::form() * * @param array $instance Previously saved values from database. */ public function form( $instance ) { $title = ! empty( $instance['title'] ) ? $instance['title'] : esc_html__( 'New title', 'text_domain' ); ?> <p> <label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"><?php esc_attr_e( 'Title:', 'text_domain' ); ?></label> <input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>"> </p> <?php } /** * Sanitize widget form values as they are saved. * * @see WP_Widget::update() * * @param array $new_instance Values just sent to be saved. * @param array $old_instance Previously saved values from database. * * @return array Updated safe values to be saved. */ public function update( $new_instance, $old_instance ) { $instance = array(); $instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : ''; return $instance; } } // class Foo_Widget // register Foo_Widget widget function register_foo_widget() { register_widget( 'Foo_Widget' ); } add_action( 'widgets_init', 'register_foo_widget' ); unfortunately this didn't work

Last edited 24 January 2017 by Inetinvestigator

Support Team posted this 25 January 2017

Hi,

The CMS Code control adds the code to the functions-additional.php file. This file is included into the functions.php in the end of file. To make this code work this file should included before the if (is_admin()) condition on the top of the file. In the next Themler update the functions-additional.php file will be included before the if (is_admin()) condition and the code for custom widgets will work.

Thank you,
Olivia

Hi, The CMS Code control adds the code to the `functions-additional.php` file. This file is included into the `functions.php` in the end of file. To make this code work this file should included before the `if (is_admin())` condition on the top of the file. In the next Themler update the `functions-additional.php` file will be included before the `if (is_admin())` condition and the code for custom widgets will work. Thank you, Olivia
Inetinvestigator
17 Posts
Inetinvestigator posted this 25 January 2017

super!!
thanks!
now i have a workaround for the moment!

regards

oliver

super!! thanks! now i have a workaround for the moment! regards oliver

Last edited 25 January 2017 by Inetinvestigator

Support Team
Support Team posted this 25 January 2017

You are welcome. Feel free to contact us in any other occasion.

Sincerely,
Hella

You are welcome. Feel free to contact us in any other occasion. Sincerely, Hella
You must log in or register to leave comments