[wp-hackers] Setting default options for plugin
Peter Westwood
peter.westwood at ftwr.co.uk
Sat Sep 1 14:25:11 GMT 2007
On 1 Sep 2007, at 14:52, Johannes Ruthenberg wrote:
> Hello Peter!
>
> I'm relatively new to WordPress, but I've been reading this list
> for some weeks now. This seems like a good opportunity to delurk. ;-)
>
Firstly, thank you for the feedback.
> Peter Westwood wrote:
>> What is wrong with the following documentation that means it
>> doesn't explain how register_activation_hook works?
>> <current_docs>
>> activate_{plugin-filename}
>> activate_{plugin-filename} is triggered when a plugin file of
>> that name is activated. Instead of using it directly, use
>> register_activation_hook($file, $function) where $fileis the
>> plugin file (don't hardcode it... use __FILE__) and $function is
>> the function you want to be run on plugin activation.
>> Context:
>> File: wp-admin/plugins.php
>> if ('activate' == $_GET['action']) {
>> $current = get_settings('active_plugins');
>> if (!in_array($_GET['plugin'], $current)) {
>> $current[] = trim( $_GET['plugin'] );
>> sort($current);
>> update_option('active_plugins', $current);
>> include(ABSPATH . 'wp-content/plugins/' . trim( $_GET
>> ['plugin'] ));
>> do_action('activate_' . trim( $_GET['plugin'] ));
>> }
>> </current_docs>
>> It makes reasonable sense to me - if you have any feedback on
>> making it more meanful let me know and I will get it updated.
>
> Actually, this brief explanation had me quite confused when I tried
> to use the hook some weeks earlier. One thing I do remember is,
> that the given example is for a plugin file directly in the plugin
> directory. My file was in a sub-directory and it took me a while to
> figure out how to write this correctly.
>
> So, an example like the following could be helpful (correct me if I
> get any of this wrong):
>
> For the hook directly:
> activate_{plugin-filename} => activate_myplugin.php
> activate_{folder-name/plugin-filename} => activate_myfolder/
> myplugin.php
>
This looks like good information to add.
> And an example for using the recommended function:
> register_activation_hook(plugin_basename(__FILE__), 'myfunction');
>
You should pass __FILE__ directly to register_activation_hook - it
calls plugin_basename itself (http://trac.wordpress.org/browser/trunk/
wp-includes/plugin.php#L248)
I think the example on wphooks needs so more example code as well. I
will see about getting it updated.
> I think, I had other problems in getting this to work, but I didn't
> take notes and it's been some weeks... ;-)
It only works correctly for IIS on trunk at present ( due to issues
with plugin_basename).
westi
--
Peter Westwood <peter.westwood at ftwr.co.uk>
Blog: http://blog.ftwr.co.uk/
WordPress Plugins: http://blog.ftwr.co.uk/wordpress/
More information about the wp-hackers
mailing list