Lag din egen WordPress-utvidelse

wp2

En WordPress-utvidelse gir nettsiden din ekstra funksjonalitet. Det finnes et stort utvalg av ferdig lagde utvidelser, men du har også muligheten å lage din egen. For å få dette til må du kunne språkene HTML, CSS og ikke minst PHP.

Les også: Her finner du WordPress-utvidelser

WordPress er for det meste laget av PHP-filer, også utvidelser. En utvidelse i sin enkleste form består av én PHP-fil. For å lage egen utvidelse må du lage en PHP-fil, lagre denne i en riktig undermappe i WordPress-mappen, og aktivere den via kontrollpanelet i WordPress.

Én eller flere filer

En utvidelse kan bestå av én eller flere filer – det avhenger av hvor enkel eller komplisert utvidelsen er. Den kan bestå av filer som Javascript, CSS, bilder, pluss eventuelt andre filer.

Les også: PHP-guide

En god start er å opprette én PHP-fil. Du kan kalle denne filen hva som helst, for eksempel dinplugin.php, men navnet bør helst være unikt og beskrivende. Det er en fordel å lagre filen i en egen mappe som en undermappe av \wp-content\plugin i WordPress-mappen på serveren, fordi er det lettere å organisere flere utvidelser.

Du kan være lurt å bruke WordPress-installasjon på din egen PC for å eksperimentere med utvidelser, før disse eventuelt legges ut på et webhotell.

Header

Den første filen i en utvidelse har alltid en header, med en slik struktur:

<?php
/*
Plugin Name: Minplugin
Plugin URI: http://www.din_nettside.no/minplugin/
Description: This plugin does great things.
Author: Ola Nordmann
Version: 1.0
Author URI: http://www.din_nettside.no/
*/

Denne teksten plasseres aller øverst i PHP-filen i den nye utvidelsen din. Du erstatter navn og plassering med dine egne fakta. Navnet på utvidelsen bør være unikt og beskrivende, spesielt hvis du har tenkt å dele din utvidelse med resten av verden.

Headeren forteller WordPress at dette er en WordPress-utvidelse, men linjen som definerer filen som en utvidelse er «Plugin Name», og er dermed den eneste obligatoriske linjen i en PHP-fil som utgjør en utvidelse. Resten av teksten er ikke nødvendig, men bør absolutt være på plass, fordi den blir ryddig slik.

Se utvidelsen i kontrollpanelet

Når filen er på plass i riktig mappe (for eksempel \wp-content\plugin\minplugin), kan du gå til kontrollpanelet på WordPress, og da skal den nye utvidelsen faktisk være på plass i Utvidelser-mappen. Hvis den ikke er det, må du kanskje oppdatere nettsiden.

For ordens skyld, før utvidelsen kan tas i bruk må den aktiveres, men akkurat nå vil den ikke fungere, fordi den inneholder egentlig ingen ting akkurat nå, kun en header. Det kan likevel være artig å se utvidelsen din i kontrollpanelet.

Legg inn et lisensnotat

Du kan også legge inn et lisensnotat i utvidelsen din. Dette er ikke obligatorisk, men det er ganske vanlig å gjøre, spesielt dersom du skal dele utvidelsen din med andre WordPress-brukere.

<?php
/*
Plugin Name: Minplugin
Plugin URI: http://www.din_nettside.no/minplugin/
Description: This plugin does great things.
Author: Ola Nordmann
Version: 1.0
Author URI: http://www.din_nettside.no/

Copyright 2015 Ola Nordmann

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License, version 2, as
published by the Free Software Foundation.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/

Du finner mer informasjon om lisensering på codex.wordpress.org.

Nå er faktisk utvidelsen allerede klar, men uten funksjoner.

Slik installeres utvidelser

Det eneste du trenger å gjøre for å installere en WordPress-utvidelse er å overføre PHP-filen til plugin-mappen som er en undermappe av wp-content i din WordPress-mappe på serveren.

Når PHP-filen er på plass, kan du åpne kontrollpanelet i WordPress, og aktivere utvidelsen. Utvidelsen må aktiveres for at den skal kunne kjøres og brukes.

Hooks kobler utvidelsene til WordPress

«Hooks» er et viktig begrep i WordPress, og er det som gjør at utvidelser fungerer i det hele tatt. Hooks gjør det mulig for utvidelser å komme i kontakt med resten av WordPress. Med Hooks kan du endre WordPress uten å endre WordPress-kjernen. Det er Hooks som gjør det mulig å skreddersy WordPress etter ditt behov.

Enkelt forklart, oppretter du først en ønsket funksjon, og kobler deretter denne funksjonen til WordPress med en hook.

Det finnes to typer «hooks»: «Actions» og «filters».

  • «Actions»
    Action er en hook som settes i gang av noe som skjer i WordPress, for eksempel publisering av et innlegg eller endring av et tema. Du finner en oversikt over actions på codex.wordpress.org.

    Du oppretter en PHP-fil for hver hendelse (action) du ønsker at skal skje i WordPress.

    Vi oppretter nå filen email_friends.php som et eksempel. Denne utvidelsen sender en e-post til et par e-postadresser, hver gang det publiseres et nytt innlegg på den aktuelle WordPress-bloggen/nettsiden.

    function email_friends( $post_ID ) {
    $friends = ‘brukernavn@gmail.com, brukernavn2@gmail.com’;
    wp_mail( $friends, «bloggen er oppdatert», ‘Adressen er: http://dette_er_min_blogg.no’ );

    return $post_ID;
    }
    add_action( ‘publish_post’, ’email_friends’ );

    Koden er skrevet på PHP-språket – du finner en komplett oversikt over dette språket i PHP-manualen.

    Uten add_action() vil ikke dette fungere, fordi funksjonen er isolert uten tilknytning (hook) til WordPress.

    wordpress.org finner du en liste over actions.

  • «Filters»
    Et filter er en hook som fungerer på samme måten som actions, men filters har spesifikt med tekst å gjøre, altså brukes til å behandle tekst på en spesiell måte. Du finner filtere på codex.wordpress.org.

    codex.wordpress.org/Plugin_API finner du en oversikt over funksjoner som kan legges i utvidelser.

    Filters fungerer på samme måten som actions. Du definerer en funksjon, og bruker en innebygd action som hooker funksjonen til WordPress.

    Vi oppretter funksjonen hello_world som et eksempel:

    add_filter(‘the_content’,’hello_world’);


    //Callback function
    function hello_world($content)
    {
    //Checking if on post page.
    if ( is_single() ) {
    //Adding custom content to end of post.
    return $content . "<h1> Hello World </h1>";
    }
    else {
    //else on blog page / home page etc, just return content as usual.
    return $content;
    }
    }

    Denne utvidelsen legger inn teksten Hello World, i alle innlegg som publiseres på den aktuelle nettsiden,

    Les mer om funksjonen add_filtercodex.wordpress.org – denne brukes til å legge til et nytt filter.

    denne siden finner en liste over ulike typer filtre. Hvis ønsker å lage et utvidelser som behandler tekst, vil du sannsynligvis finner en riktig funksjon på denne siden.

Les mer om Hooks
Du finner detaljene på codex.wordpress.org/Plugin_API – her finner du blant annet hundrevis av actions og filters som kan brukes til å knytte en bestemt hendelse til WordPress. En annen god kilde for mer informasjon om Hooks er adambrown.info/p/wp_hooks.

Shortcodes

Shortcodes er ferdig definerte funksjoner i WordPress som gjøre det mulig for brukere som ikke har lyst å programmere selv, til å legge inn funksjoner i WordPress – les mer.

WordPress-hjelp!

Trenger du hjelp med å jobbe med WordPress, finner du gode ressurser på denne siden.

Kilder: WordPress.org (1), WordPress.org (2), WordPress.org (3), Adambrown.info, PHP.net

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *