This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
plugins:creation [2014/02/07 09:15] datiswous code php |
plugins:creation [2017/01/18 17:25] lokothodida |
||
---|---|---|---|
Line 79: | Line 79: | ||
This code is what attaches your custom function to a particular hook or filter. | This code is what attaches your custom function to a particular hook or filter. | ||
- | <code> | + | <code php> |
# activate filter | # activate filter | ||
add_action( 'theme-footer', 'hello_world', array() ); | add_action( 'theme-footer', 'hello_world', array() ); | ||
Line 90: | Line 90: | ||
This code displays a link to a plugin specific page in the administration (it is a special case of //add_action//): | This code displays a link to a plugin specific page in the administration (it is a special case of //add_action//): | ||
- | <code> | + | <code php> |
# add a link in the admin tab 'theme' | # add a link in the admin tab 'theme' | ||
add_action( 'theme-sidebar', 'createSideMenu', array( $thisfile, 'Hello World description' ) ); | add_action( 'theme-sidebar', 'createSideMenu', array( $thisfile, 'Hello World description' ) ); | ||
Line 103: | Line 103: | ||
**Note:** | **Note:** | ||
As of version 3.1 you can include multiple menu items on the sidebar by adding an **//action//** parameter to the ''add_action()'' function: | As of version 3.1 you can include multiple menu items on the sidebar by adding an **//action//** parameter to the ''add_action()'' function: | ||
- | <code> | + | <code php> |
# add a link in the admin tab 'theme' | # add a link in the admin tab 'theme' | ||
add_action( 'theme-sidebar', 'createSideMenu', array( $thisfile, 'Hello World description', 'action1' ) ); | add_action( 'theme-sidebar', 'createSideMenu', array( $thisfile, 'Hello World description', 'action1' ) ); | ||
Line 114: | Line 114: | ||
The functions in this section would be the functions that are called as part of the registration, a [[plugins:hooks_filters|hook or a filter]]. | The functions in this section would be the functions that are called as part of the registration, a [[plugins:hooks_filters|hook or a filter]]. | ||
- | <code> | + | <code php> |
# functions | # functions | ||
function hello_world() { | function hello_world() { | ||
Line 155: | Line 155: | ||
- delete.png | - delete.png | ||
- edit.png | - edit.png | ||
+ | </code> | ||
+ | |||
+ | ==== Internationalization (I18N) ==== | ||
+ | If your plugin displays messages to your user/administrator, you will want to allow those messages to be localised to the language of the installation. You do this by having a ''/lang'' folder, which has PHP files for each language: | ||
+ | |||
+ | <code> | ||
+ | - lang (directory) | ||
+ | - .htaccess (with one line: Deny from all) | ||
+ | - en_US.php | ||
+ | - de_DE.php | ||
+ | - it_IT.php | ||
+ | </code> | ||
+ | |||
+ | Each file should have one variable: an ''$i18n'' array, which has ''key => value'' mappings for the various messages: | ||
+ | |||
+ | <code php> | ||
+ | <?php | ||
+ | // en_US.php | ||
+ | $i18n = array(); | ||
+ | $i18n['PLUGIN_TITLE'] = 'My Plugin'; | ||
+ | ... | ||
+ | </code> | ||
+ | |||
+ | To register your i18n array, call ''i18n_merge'' with the ID of your plugin (**before the plugin is registered**): | ||
+ | |||
+ | <code php> | ||
+ | i18n_merge($plugin_id); | ||
+ | </code> | ||
+ | |||
+ | This registers ''$i18n'' for your plugin with the installation's language, but you might not have such a language file created. In order to set up a default language, you can register a fixed language if ''i18n_merge'' returns ''false''. | ||
+ | |||
+ | <code php> | ||
+ | // Sets the default to English | ||
+ | if (!i18n_merge($plugin_id)) i18n_merge($plugin_id, 'en_US'); | ||
+ | </code> | ||
+ | |||
+ | Or the clearer: | ||
+ | |||
+ | <code php> | ||
+ | i18n_merge($plugin_id) || i18n_merge($plugin_id, 'en_US'); | ||
+ | </code> | ||
+ | |||
+ | Once that is done, you can call a localised string by using ''i18n_r'' (to ''return'' the string) or ''i18n'' (to ''echo'' it). You do this by prefixing your key with your plugin's ID: | ||
+ | |||
+ | <code php> | ||
+ | // Prints "My Plugin" if the language is English | ||
+ | i18n($plugin_id . '/PLUGIN_TITLE'); | ||
</code> | </code> | ||
Line 188: | Line 235: | ||
To use your script you must first register it with the system. | To use your script you must first register it with the system. | ||
- | <code> | + | <code php> |
// register_script($handle, $src, $ver, $in_footer=FALSE) | // register_script($handle, $src, $ver, $in_footer=FALSE) | ||
// $handle name for the script, must be unique for each script loaded | // $handle name for the script, must be unique for each script loaded | ||
Line 201: | Line 248: | ||
To queue and load a registered script use: | To queue and load a registered script use: | ||
- | <code> | + | <code php> |
// queue_script($name,$where); | // queue_script($name,$where); | ||
// $name name of the script to load | // $name name of the script to load | ||
Line 212: | Line 259: | ||
To register a script from your plugin folder use | To register a script from your plugin folder use | ||
- | <code> | + | <code php> |
register_script('pluginscriptname', $SITEURL.'plugins/my_plugin_folder/your.script.js', '0.1', FALSE); | register_script('pluginscriptname', $SITEURL.'plugins/my_plugin_folder/your.script.js', '0.1', FALSE); | ||
</code> | </code> | ||
Line 223: | Line 270: | ||
To use your own stylesheets you must first register them with the system. | To use your own stylesheets you must first register them with the system. | ||
- | <code> | + | <code php> |
// register_sstyle($handle, $src, $ver) | // register_sstyle($handle, $src, $ver) | ||
// $handle name for the style, must be unique for each style loaded | // $handle name for the style, must be unique for each style loaded | ||
Line 237: | Line 284: | ||
To queue and load a registered style use: | To queue and load a registered style use: | ||
- | <code> | + | <code php> |
// queue_style($name,$where); | // queue_style($name,$where); | ||
// $name name of the style to load | // $name name of the style to load |