Categories
English Wordpress

How add options to your WordPress 2.7 dashboard widgets

Well, in this article, I assume you have read the WP Engineer’s excellent post Add WordPress Dashboard Widgets, because his code will be our start point.

So, we have this code:


// Load up the localization file if we're using WordPress in a different language
// Place it in this plugin's folder and name it "MainFunction-[value in wp-config].mo"
load_plugin_textdomain( 'MainFunction', '/wp-content/plugins/MainFunction' );

/**
 * Content of Dashboard-Widget
 */
function MainFunction() {
	echo 'Test Add Dashboard-Widget';
}
 
/**
 * add Dashboard Widget via function wp_add_dashboard_widget()
 */
function MainFunction_Init() {
	wp_add_dashboard_widget( 'MainFunction', __( 'MainFunction Widget Title' ), 'MainFunction' );
}
 
/**
 * use hook, to integrate new widget
 */
add_action('wp_dashboard_setup', 'MainFunction_Init');

OK, now, remenber the wp_add_dashboard_widget function?

function wp_add_dashboard_widget( $widget_id, $widget_name, $callback, $control_callback = null )

The $control_callback parameter (obviously optional) is our main target. It gives the ‘Configure’ option to our spiffy widget.
So, we need to add a 4th parameter to wp_add_dashboard_widget:

wp_add_dashboard_widget( 'MainFunction', __( 'MainFunction Widget Title' ), 'MainFunction', 'MainFunction_Setup');

The MainFunction_Setup function handles two things: the options (set the default options, recolect new values, etc) and the option’s presentation (i.e. the HTML part)

So, here goes the code:


function MainFunction_Options() {
	$defaults = array( 'items' => 5, 'boolean' => 1);
	if ( ( !$options = get_option( 'MainFunction' ) ) || !is_array($options) )
		$options = array();
	return array_merge( $defaults, $options );
}

function MainFunction_Setup() {

	$options = MainFunction_Options();


	if ( 'post' == strtolower($_SERVER['REQUEST_METHOD']) && isset( $_POST['widget_id'] ) && 'MainFunction' == $_POST['widget_id'] ) {
		foreach ( array( 'items', 'boolean' ) as $key )
				$options[$key] = $_POST[$key];
		update_option( 'MainFunction', $options );
	}
		
?>
	

As you can see, MainFunction_Options puts the default values (if necessary, of course) and MainFunction_Setup show the current values and let change them. You can merge this two, of course...

Now, we have to get the options and use them in our MainFunction function. Change MainFunction like that:

/**
 * Content of Dashboard-Widget
 */
function MainFunction() {

        $widget_options = MainFunction_Options();

	echo 'Test Add Dashboard-Widget
'; echo "You have selected $widget_options['items'] items
"; echo "boolean is $widget_options['boolean']
"; }

The complete code here:

';
	echo "You have selected $widget_options['items'] items
"; echo "boolean is $widget_options['boolean']
"; } /** * add Dashboard Widget via function wp_add_dashboard_widget() */ function MainFunction_Init() { wp_add_dashboard_widget( 'MainFunction', __( 'MainFunction Widget Title' ), 'MainFunction' , 'MainFunction_Setup' ); } function MainFunction_Options() { $defaults = array( 'items' => 5, 'boolean' => 1); if ( ( !$options = get_option( 'MainFunction' ) ) || !is_array($options) ) $options = array(); return array_merge( $defaults, $options ); } function MainFunction_Setup() { $options = MainFunction_Options(); if ( 'post' == strtolower($_SERVER['REQUEST_METHOD']) && isset( $_POST['widget_id'] ) && 'MainFunction' == $_POST['widget_id'] ) { foreach ( array( 'items', 'boolean' ) as $key ) $options[$key] = $_POST[$key]; update_option( 'MainFunction', $options ); } ?>

You can view a PHPS version (without PHP crippled tags) here.

536 replies on “How add options to your WordPress 2.7 dashboard widgets”

I rarely comment, however I read a few of the remarks on this page How add options to your WordPress 2.7 dashboard widgets
– Rick's HideOut. I do have a couple of
questions for you if you tend not to mind. Could it be just me or do a few of these responses look
like they are left by brain dead people? 😛 And, if you are writing on additional places, I would like to keep up
with you. Could you post a list of all of all your public sites like your linkedin profile, Facebook page or twitter feed?

Review my homepage – https://www.centredrum.com

We wish to thank you once again for the wonderful ideas you gave Jesse when preparing her own post-graduate research plus, most importantly,
for providing all of the ideas in a blog post. In case we had known of your web-site a year ago, we
may have been rescued from the pointless measures we were selecting.
Thanks to you.

Here is my site – science-marketplace.org

Howdy! This blog post could not be written much better!
Looking at this post reminds me of my previous roommate! He constantly
kept preaching about this. I most certainly will send this information to him.
Fairly certain he’s going to have a good read.
Thank you for sharing! asmr 0mniartist

Greetings from Ohio! I’m bored to death at work so I decided to check out
your website on my iphone during lunch break. I enjoy the knowledge you provide here and can’t wait to take a look when I get home.

I’m surprised at how quick your blog loaded on my cell phone ..
I’m not even using WIFI, just 3G .. Anyhow, awesome site!

My blog – rapidactionprofits.com

First of all I want to say terrific blog! I had a quick question which I’d like to
ask if you do not mind. I was interested to know how you center yourself and clear your mind before writing.
I’ve had a difficult time clearing my thoughts in getting
my thoughts out there. I do take pleasure in writing but it just seems like the first 10 to 15 minutes are usually wasted just trying
to figure out how to begin. Any suggestions or tips?
Appreciate it!

My blog post :: http://www.theezentrepreneur.com

Hey there! Would you mind if I share your blog with my facebook group?
There’s a lot of folks that I think would really enjoy
your content. Please let me know. Cheers

Also visit my webpage: Poppy

My wife and i got quite relieved when John could do his researching with the precious recommendations he had from your own web site.

It’s not at all simplistic just to always be giving out hints that some others might have been selling.
And we figure out we have the blog owner to appreciate for that.

All of the illustrations you made, the easy web site
menu, the relationships you give support to instill – it is mostly unbelievable, and it’s assisting our son and our family reckon that this issue is enjoyable, and that is wonderfully
important. Many thanks for all!

Also visit my site https://store.enviotech.com.bd

Hi there, I discovered your site by the use of Google even as searching
for a similar matter, your website got here up, it appears great.
I have bookmarked it in my google bookmarks.
Hi there, simply became aware of your blog through Google, and located that it is truly informative.
I’m gonna watch out for brussels. I will be grateful if you continue this in future.
Numerous other people might be benefited out of your writing.
Cheers! 0mniartist asmr

Hey there, You’ve done an incredible job. I will definitely digg
it and personally recommend to my friends. I am
confident they’ll be benefited from this web site.

Sweet blog! I found it while surfing around on Yahoo News.
Do you have any suggestions on how to get listed in Yahoo News?
I’ve been trying for a while but I never seem
to get there! Cheers asmr 0mniartist

Comments are closed.