Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett...
Transcript of Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett...
![Page 1: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/1.jpg)
Att utveckla plugins
1 Christian Ohlsson
![Page 2: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/2.jpg)
Vad är ett plugin?
§ Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten i WordPress kärna
§ Helt enkelt: man använder plugins för att lägga till nya features i WP
Christian Ohlsson 2
![Page 3: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/3.jpg)
http://wordpress.org/plugins/
Christian Ohlsson 3
![Page 4: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/4.jpg)
Typer och status på plugins
§ Active § Inactive § Must-Use
§ Drop-ins
Christian Ohlsson 4
![Page 5: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/5.jpg)
Typer och status på plugins
§ Active – Plugin är aktivt och körs I WP § Inactive – Plugin är installerat med ej aktivt. Koden I
pluginet körs ej § Must-Use – Alla plugins i wp-content/mu-plugins.
Laddas automatiskt. Enda sättet att deaktivera är att ta bort
§ Drop-ins – Kärnfunktionalitet I WP kan ersättas av dessa plugins § advanced-cache-php – Advanced cachehantering § db.php – Skapa egna databasklasser § maintenance.php – Skapa egna maintenance meddelande § sunrise.php – Mappa domäner
Christian Ohlsson 5
![Page 6: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/6.jpg)
Header på plugin
Christian Ohlsson 6
<?php /* * Plugin Name: Mitt Fina Plugin * Plugin URI: http://example.com/mina-wp-plugins/ * Description: Kort beskrivning på mitt plugin * Version: 1.0 * Author: Christian Ohlsson * Author URI: http://example.com * License: GPLv2 */ ?>
![Page 7: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/7.jpg)
Nu kan det aktiveras!
Christian Ohlsson 7
![Page 8: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/8.jpg)
Ordning och reda!
§ Får att få till ett kodmässigt snyggt plugin finns några saker du ska tänka på
§ Prefixa allt! § Organisera och strukturera dina filer!
Christian Ohlsson 8
![Page 9: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/9.jpg)
Prefixa allt!
Christian Ohlsson 9
update_option() // Dåligt funktionsnamn
mitt_plugin_update_option() //Bra funktionsnamn
$settings // Dåligt variabelnamn
$mitt_plugin_settings // Bra variabelnamn
![Page 10: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/10.jpg)
Organisera och strukturera dina filer!
Christian Ohlsson 10
/unikt-namn-på-plugin
unikt-namn-på-plugin.php
uninstall.php
readme.txt
screenshot-1.png
/js
/css
/includes
/images
![Page 11: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/11.jpg)
Håll ordning på sökvägar
§ Lokala sökvägar
Christian Ohlsson 11
<?php
// Visa lokal sökväg till min plugin-katalog
echo plugin_dir_path( __FILE__ );
?>
Visar: /public_html/wp-content/plugins/mitt-plugin/
![Page 12: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/12.jpg)
Håll ordning på sökvägar
Christian Ohlsson 12
<?php
// Visa den lokala sökvägen till min includes/functions.php fil
echo plugin_dir_path( __FILE__ ) .’includes/functions.php’;
?>
Visar: /public_html/wp-content/plugins/mitt-plugin/includes/functions.php
__FILE__ är en “magisk” PHP-konstant som innehåller hela sökvägen och
filnamnet på aktuell fil
![Page 13: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/13.jpg)
Håll ordning på sökvägar
§ URL sökvägar
Christian Ohlsson 13
<?php
// Visa URL till images/icon.png
echo plugins_url( 'images/icon.png', __FILE__ );
?>
Visar: http://example.com/wp-content/plugins/mitt-plugin/images/icon.png
![Page 14: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/14.jpg)
Fördelar med plugins_url()
§ Stödjer katalogen mu-plugins § Autodetekterar SSL
§ Är det på blir URL https…
§ Använder konstanten WP_PLUGIN_URL § Hittar rätt sökväg även om wp-content har flyttats
§ Stödjer Multisite genom att använda konstanten WPMU_PLUGIN_URL
Christian Ohlsson 14
![Page 15: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/15.jpg)
Viktiga saker att tänka på
§ Aktivera plugin med:
Christian Ohlsson 15
register_activation_hook( $file, $function )
Parametrar $file (string) (required) – Sökvägen till pluginets primära PHP-fil $function (string) (required) – Funktion att köra när pluggen aktiveras
Läs mer: h"p://codex.wordpress.org/Func*on_Reference/register_ac*va*on_hook
![Page 16: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/16.jpg)
Exempel
Christian Ohlsson 16
<?php
register_activation_hook( __FILE__, ’mitt_plugin_install' );
function mitt_plugin_install () {
if ( version_compare( get_bloginfo( 'version' ), ‘3.0', '<' ) ) {
deactivate_plugins( plugin_basename( __FILE__ ) ); // Deaktivera oss
wp_die( ’Detta plugin kräver WordPress version 3.0 eller högre.' );
}
}
?>
![Page 17: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/17.jpg)
Viktiga saker att tänka på
§ De-aktivera plugin med:
Christian Ohlsson 17
Parametrar $file (string) (required) – Sökvägen till pluginets primära PHP-fil $function (string) (required) – Funktion att köra när pluggen deaktiveras
register_deactivation_hook( $file, $function )
Läs mer: http://codex.wordpress.org/Function_Reference/register_deactivation_hook
![Page 18: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/18.jpg)
Exempel
Christian Ohlsson 18
<?php
register_deactivation_hook( __FILE__, ’mitt_plugin_deactivate' );
function mitt_plugin_deactivate () {
// Gör saker här för att återställa allt
}
?>
OBS! Deaktivera är inte att avinstallera! Anta att dina användare kommer att aktivera pluggen igen!
![Page 19: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/19.jpg)
Viktiga saker att tänka på
§ Avinstallera plugin 1. Skapa en uninstall.php-fil i rootkatalogen för ditt
plugin 2. Lägg all avinstallationskod i denna fil
§ Detta är det rekommenderade sättet att avinstallera på, men man kan kan även använda:
Christian Ohlsson 19
register_uninstall_hook()
![Page 20: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/20.jpg)
Exempel
Christian Ohlsson 20
<?php
if( !defined( 'WP_UNINSTALL_PLUGIN' ) )
exit ();
// Delete option from options table
delete_option( ‘mitt_plugin_options' );
?>
Om inte WP_UNINSTALL_PLUGIN är definierad vet vi att WordPress inte anropade denna fil. Detta är en säkerhetsåtgärd I WordPress
![Page 21: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/21.jpg)
Vad är en hook?
§ Med hook’s kan pluginskaparen ”hook’a” på saker i WordPress utan att för den sakens skull ändra i kärnan § Dvs Systemfilerna
§ Det finns två typer av hooks: § Actions – ”Gör någonting”
§ Filters – ”Transformera”
Christian Ohlsson 21
![Page 22: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/22.jpg)
Hooks
§ Action hooks § Låter dig exekvera en funktion vid en specifik
tidpunkt när WordPress laddas
Christian Ohlsson 22
http://codex.wordpress.org/Plugin_API/Action_Reference
add_action( 'hook_name', 'your_function_name',
[priority], [accepted_args] );
![Page 23: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/23.jpg)
Exempel
Christian Ohlsson 23
<?php
add_action( 'user_register', ’mitt_plugin_welcome_email' );
function mitt_plugin_welcome_email ( $user_id ) {
$user_info = get_userdata( $user_id );
//populate email values
$email_to = is_email( $user_info->user_email );
$email_subject = 'Welcome!';
$email_msg = 'Thank you for registering on my website!';
//send welcome email
wp_mail( $email_to, $email_subject, $email_msg );
}
?>
![Page 24: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/24.jpg)
Några vanliga hooks
§ plugins_loaded – Inträffar då alla plugins laddats § Init – Inträffar när merparten laddats så att all info finns § admin_menu – Körs när adminmenyn finns § template_redirect – Körs före temats template valts § wp_head – Körs inuti <head> taggarna för användaren § wp_footer – Körs I temats footer § admin_head – Körs inuti <head> taggarna för admins § admin_footer – Körs I temats footer för admin § user_register – Körs när nytt användarkonto skapas § save_post – Körs när ny post/page skapas/uppdateras
Christian Ohlsson 24
![Page 25: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/25.jpg)
Filter
§ Låter dig manipulera utdata av kod och content
Christian Ohlsson 25
add_filter('hook_name', 'your_filter_function',
[priority], [accepted_args]);
http://codex.wordpress.org/Plugin_API/Filter_Reference
![Page 26: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/26.jpg)
Kom ihåg
§ Filter byter inte innehåll i databasen § Bara i utdatan!
Christian Ohlsson 26
<?php
add_filter( 'the_content', ’mitt_plugin_filter_content' );
function mitt_plugin_filter_content ( $text ) {
$text = str_replace( 'Drupal', 'WordPress', $text );
return $text;
}
?>
Byter alla förekomster av “Drupal” mot “WordPress” I din content J
![Page 27: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/27.jpg)
Vanliga Filter hooks
§ the_content – Läggs på utskriften av page/post § the_title – Läggs på titeln § body_class – Läggs på <body> -taggen
§ default_content – Läggs på nya post/page § comment_text – Läggs på kommentarstexten
Christian Ohlsson 27
![Page 28: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/28.jpg)
Exempel
Christian Ohlsson 28
<?php
add_filter ( 'the_content', 'insertFootNote' );
function insertFootNote( $content ) {
if( !is_feed() && !is_home() ) {
$content .= "<div class='subscribe'>";
$content .= "<h4>Gillade du artikeln?</h4>";
$content .= "<p>Prenumerera på <a href='http://ex.com/rss'>min RSS</a>!</p>";
$content .= "</div>";
}
return $content;
}
?>
![Page 29: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/29.jpg)
Resultatet
Christian Ohlsson 29
![Page 30: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/30.jpg)
Antalet hooks i WP per version
Christian Ohlsson 30
http://adambrown.info/p/wp_hooks
![Page 31: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/31.jpg)
Bygg plugins på en stadig grund!
Christian Ohlsson 31
<?php
/*
Plugin Name: Mitt fina plugin
Plugin URI: http://example.com/support/mitt-plugin/
Description: En plugin för att göra det här…
Version: 1.0
Author: Christian Ohlsson
Author URI: http://example.com
License: GPLv2
*/
// DEFINE CONSTANTS
define( ’MITTPLUGIN_VERSION', '1.0' );
define( 'MITTPLUGIN_TEXTDOMAIN', ‘mittplugin_plugin' );
define( 'MITTPLUGIN_BASENAME', plugin_basename(__FILE__) );
define( 'MITTPLUGIN_DIR', plugin_dir_path( __FILE__ ) );
define( 'MITTPLUGIN_URL', plugins_url( ’mitt-plugin/' ) );
require_once(MITTPLUGIN_DIR . 'includes/core.php' ); ?>
![Page 32: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/32.jpg)
Shortcodes
Christian Ohlsson 32
<?php
// Register a new shortcode: [lag]
add_shortcode( ’lag', ’mitt_plugin_lag' );
// The callback function that will replace [lag]
function mitt_plugin_lag () {
return '<a href=http://www.hv71.se>Hejja på rätt lag</a>';
} ?>
![Page 33: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/33.jpg)
Resultatet
Christian Ohlsson 33
![Page 34: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/34.jpg)
Skapa egna menyer i DashBoard
Christian Ohlsson 34
<?php
add_action( 'admin_menu', ’mitt_plugin_create_menu' );
function mitt_plugin_create_menu () {
//create custom top-level menu
add_menu_page( ’Mina inställningar', ’Mitt Plugin',
'manage_options', ’mitt-plugin', 'mitt-plugin_settings_page' );
//create submenu items
add_submenu_page( 'mitt-plugin', ’Om mitt plugin', ’Om',
'manage_options', 'mitt-plugin-plugin_about', 'mitt-plugin_about_page' );
add_submenu_page( 'mitt-plugin', ’Hjälp med Mitt Plugin', ’Hjälp',
'manage_options', 'mitt-plugin_help', 'mitt-plugin_page' );
add_submenu_page( 'mitt-plugin', 'Uninstall Mitt Plugin', 'Uninstall',
'manage_options', ‘mitt-plugin_uninstall', 'mitt-plugin_uninstall_page' );
}
?>
![Page 35: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/35.jpg)
Resultatet
Christian Ohlsson 35
![Page 36: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/36.jpg)
Parametrar: add_menu_page()
§ $page_title – Texten på titel-taggen § $menu_title – Namnet på menyn § $capability – Vad krävs för att se menyn
§ $menu_slug – Unikt namn på menyn § $function – Funktion som visar sidans innehåll § $icon_url – URL till en egen menyikon
§ $position – Position där menyn ska finnas
Christian Ohlsson 36
![Page 37: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/37.jpg)
Parametrar: add_submenu_page()
§ $parent_slug – Unikt namn på förälder-menyn § $page_title – Texten på titel-taggen § $menu_title – Namnet på undermenyn
§ $capability – Vad krävs för att se menyn § $menu_slug – Unikt namn på menyn § $function – Funktion som visar sidans innehåll
Christian Ohlsson 37
![Page 38: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/38.jpg)
Skapa egen meny under Settings
Christian Ohlsson 38
![Page 39: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/39.jpg)
Skapa egen meny under Settings
Christian Ohlsson 39
add_action( 'admin_menu', 'crille_more_settings_create_menu' );
function crille_more_settings_create_menu() {
//create Settings submenu page
add_options_page('Crille More Settings Page', 'Crille More Settings',
'manage_options', 'crille_more_settings', 'crille_more_settings_page' );
}
function crille_more_settings_page() { ?>
<h1>Crille More Settings Page</h1>
<p>Lots of options here to set :-)</p>
<?php } ?>
![Page 40: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/40.jpg)
Resultatet
Christian Ohlsson 40
![Page 41: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/41.jpg)
Widgets
§ En Widget är en typ av plugin som är gjord för att existera i en sidebar och visa upp något
§ Skapas för att på ett enkelt sätt ge ”drag ’n drop” funktionalitet till WordPress
§ Kan läggas till, tas bort och ändras i ordning från Appearance -> Widgets
§ Kan placeras där en Sidebar registrerats i temat
Christian Ohlsson 41
![Page 42: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/42.jpg)
Registrera en Sidebar
§ I temats functions.php
Christian Ohlsson 42
register_sidebar( array (
'name' => __( 'Sidebar Widget Area', ’my_theme' ),
'id' => 'primary-widget-area',
'before_widget' => '<li class="widget-container">',
'after_widget' => "</li>",
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
) );
![Page 43: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/43.jpg)
Header på en Widget
§ Plugin name – Unikt namn på din plugin § Plugin URI – Var finns info om pluginet § Description – Vad gör ditt plugin
§ Version – Öhhhh Gissa? § Author – Vem skrev det? § Author URI – Hur kan diu kontaktas
§ License – Regler för användning av ditt plugin. Normalt sett I WordPress är det GPLv2
Christian Ohlsson 43
![Page 44: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/44.jpg)
Exempel
Christian Ohlsson 44
/*
* Plugin Name: Crille Widget Hello
* Plugin URI: http://example.com/mina-wp-plugins/
* Description: Skriver ut lite text i en Widget
* Version: 1.0
* Author: Christian Ohlsson
* Author URI: http://example.com
* License: GPLv2
*/
![Page 45: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/45.jpg)
Class
§ Ett plugin skall finnas i en class
Christian Ohlsson 45
class Crille_Widget_Hello extends WP_Widget {
public function __construct() {
}
function widget ($args, $instance) {
}
function update ($new_instance, $old_instance) {
}
function form () {
}
}
![Page 46: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/46.jpg)
Berätta att du finns
§ För att WordPress skall kunna hantera din Widget måste den registreras
Christian Ohlsson 46
add_action( 'widgets_init',
function() {
register_widget( 'Crille_Widget_Hello' );
}
);
![Page 47: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/47.jpg)
__construct()
§ Konstruktorn för din Widget. Initierar allt
Christian Ohlsson 47
public function __construct() {
// widget actual processes
parent::WP_Widget(false,'Crille Widget Hello',
'description=Skriver ut en liten text i en Widget');
}
![Page 48: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/48.jpg)
widget ($args, $instance)
§ Innehåller själva utskriften av din Widget
Christian Ohlsson 48
function widget ($args, $instance) {
// Hämta in alla argument
extract ($args);
echo $before_widget;
echo $before_title . $instance['title'] . $after_title;
echo '<p class="crille-widget-hello”>This is fun!</p>';
echo $after_widget;
}
![Page 49: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/49.jpg)
update ($new_instance, $old_instance)
§ Hanterar uppdatering av Widget
Christian Ohlsson 49
function update ($new_instance, $old_instance) {
return $new_instance;
}
![Page 50: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/50.jpg)
form ()
§ Hur skall formuläret se ut i DashBoard
Christian Ohlsson 50
function form () {
$title = esc_attr ($instance['title']);
?>
<p>
<label for="<?php echo $this->get_field_id('title'); ?>">
Title: <input class="widefat"
id="<?php echo $this->get_field_id('title'); ?>"
name="<?php echo $this->get_field_name('title');
?>" type="text" value="<?php echo $title; ?>" /></label>
</p>
<?php
}
![Page 51: Att utveckla pluginsmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/2014/03/4_at… · Ett plugin till WordPress är ett PHP-skript som utökar eller förändrar funktionaliteten](https://reader034.fdocument.pub/reader034/viewer/2022051408/60011248da90632cba71016f/html5/thumbnails/51.jpg)
Christian Ohlsson 51