51
Att utveckla plugins 1 Christian Ohlsson

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

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

__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

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

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

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

Christian Ohlsson 51