Skip to content

Alt om WordPress, webutvikling — og mer til

📄 Slik bygger du inn en HTML-fil i en WordPress-side: Include Me-utvidelsen

📄 Slik bygger du inn en HTML-fil i en WordPress-side: Include Me-utvidelsen

Vi bygde et kontaktskjema i en separat .html-fil, skrev et rapportskript i PHP, og WordPress-editoren ødelegger koden hver gang du lagrer? En velkjent smerte for alle som går utover standard blokkbygger.

Include Me løser denne oppgaven med én enkelt shortcode-linje: den inkluderer en ekstern HTML/PHP-fil eller innholdet fra et annet innlegg direkte i innleggsteksten. Utvidelsen ligger i WordPress.org-katalogen med over 4 000 aktive installasjoner, en vurdering på 4,8 og oppdateringer for WP 6.9.4. Forfatteren, Stefano Lissa, er skaperen av Newsletter og Hyper Cache.

Nedenfor følger en fullstendig gjennomgang: fra installasjon til overføring av variabler til PHP-skript og sikker iframe-modus.

💡 Hurtigoversikt:

  • Installer Include Me fra WordPress.org-katalogen (Utvidelser → Legg til ny, søk etter «Include Me»).
  • Last opp mål-HTML/PHP-filen din til mappen /wp-content/include-me/ på serveren.
  • Sett inn shortcoden [includeme file="your-file.html"] der du trenger den i et innlegg eller på en side.
  • For PHP-filer: utvidelsen vil kjøre skriptet og skrive ut resultatet. For HTML settes den inn som den er.
  • Alternativt kan du inkludere et annet WordPress-innlegg via post_id eller en ekstern URL via iframe-syntaks.

Hva er Include Me og når trenger du det

Include Me er en lettvektsutvidelse (bare noen få linjer med kode, ifølge forfatteren) som løser en spesifikk oppgave: å sette inn en ekstern fil i brødteksten til et WordPress-innlegg eller en side via shortcode.

Når du trenger dette i praksis:

  • Skjemaer og kalkulatorer. Du skrev et HTML-skjema med CSS og JS, og blokkreditoren ødelegger markeringen hver gang du bytter mellom visuell modus og tekstmodus. Include Me setter inn filen byte for byte, uten å røre noe.
  • PHP-rapporter. Et skript henter data fra databasen, bygger en tabell og sender ut HTML. Include Me kjører PHP-en og viser resultatet inne i innlegget uten å redigere temaet.
  • Delte blokker. Den samme filen (pristabell, ansvarsfraskrivelse, kontaktblokk) må vises på et dusin sider. Rediger filen én gang, så oppdateres den overalt automatisk.
  • Innhold fra et annet innlegg. Du inkluderte tekst fra en annen side via post_id, og den holder seg synkronisert: rediger på ett sted, vis overalt.

Hovedfordelen sammenlignet med en egendefinert temamal: når du bytter tema, forblir filene dine på plass. Temaet endres, innholdet lever uavhengig.

Installasjon og første kjøring

Installasjonen er standard, via WordPress-administrasjonspanelet:

  • Utvidelser → Legg til ny.
  • I søkefeltet skriver du «Include Me».
  • Finn utvidelsen av Stefano Lissa, klikk Installer nåAktiver.

Etter aktivering er utvidelsen klar til bruk uten innstillingsskjermer. All «konfigurasjon» gjøres via shortcode-syntaks.

Standard filbane: /wp-content/include-me/. Last opp filer du planlegger å inkludere til denne mappen. Hvis du trenger en annen mappe, legg til i wp-config.php:

1define('INCLUDE_ME_DIR', '/path/to/your/folder');

Hvis du vil inkludere filer fra hvor som helst på serveren, sett en stjerne (men det er tryggere å begrense til én mappe):

1define('INCLUDE_ME_DIR', '*');

Viktig sikkerhetsbegrensning: fra og med versjon 1.3.0 kjører shortcoden [includeme] bare i innlegg som eies av en administrator. Filer søkes som standard innenfor nettstedets rotmappe (ABSPATH og under). Dette er ikke en feil, men en sikkerhetsmekanisme: Include Me kjører PHP-kode, og du bør ikke gi den muligheten til hvem som helst.

Grunnleggende syntaks: inkludering av HTML- og PHP-filer

Eksempel på å sette inn en HTML-fil via Include Me-utvidelsen

Hovedshortcoden er [includeme file="filename"]. Den fungerer i alle innlegg, sider eller widgeter (via do_shortcode).

Eksempel 1: HTML-fil. Du forberedte price-table.html med prislayout og stiler. Du lastet den opp til /wp-content/include-me/. I innlegget skriver du:

1[includeme file="price-table.html"]

Utvidelsen leser filen og setter inn innholdet nøyaktig der shortcoden er plassert. En <style>-tagg inne i filen fungerer. Inline JS fungerer. Ingen «sanering» av markering.

Eksempel 2: PHP-skript. Filen report.php kjører en SELECT fra databasen og sender ut en tabell. Filtypen .php er utløseren for Include Me: utvidelsen leser ikke bare filen, men kjører den via include. Skriptets utdata (echo/print) går inn i innlegget:

1[includeme file="report.php"]

Eksempel 3: Relativ bane. En bane uten innledende skråstrek (file="myfolder/data.html") er relativ til nettstedets rot (ABSPATH). En absolutt bane (file="/var/www/external/widget.html") starter fra serverens filsystemrot. I de fleste tilfeller bruker du en relativ bane til en fil inne i /wp-content/include-me/.

Inkludering av et annet innlegg eller en side via post_id

Include Me-utviklerne la til syntaks for å hente innhold fra et eksisterende WordPress-innlegg. Shortcoden:

1[includeme post_id="42"]

Der 42 er den numeriske ID-en til ønsket innlegg eller side. Slik finner du ID-en: i administrasjonspanelet holder du musepekeren over «Rediger»-lenken til ønsket innlegg, så vil du se post=42 i nettleserens statuslinje.

Denne teknikken er praktisk for juridiske sider. Personvernerklæringer eller brukervilkår er ofte duplisert: én forekomst på «foreldre»-siden, resten bruker Include Me med post_id. Advokaten redigerer teksten på ett sted, og den oppdateres overalt.

Merk: bare innleggsinnholdet hentes, ikke tittelen. Hvis du også trenger tittelen, må du duplisere den inne i innholdet eller bruke [includeme file="..."] med et PHP-skript som kaller get_post().

Iframe-modus: innebygging av en ekstern URL

Den tredje syntaksen genererer en <iframe> i stedet for direkte inkludering:

1[includeme src="https://example.com/widget"]

Eventuelle tilleggsattributter sendes til <iframe> som HTML-attributter:

1[includeme src="https://example.com/widget" frameborder="0" width="600" height="450"]

Resultatet er en full iframe med de angitte dimensjonene. Dette er et alternativ til direkte inkludering for tilfeller der:

  • Du trenger å vise en ekstern side som et «vindu» inne i innlegget.
  • Det inkluderte innholdet må leve i en isolert kontekst (sin egen CSS/JS som ikke kommer i konflikt med temaet).
  • Du trenger å bygge inn en interaktiv widget (kalkulator, kart) som ikke skal kjøres i WordPress-konteksten.

Begrensning: iframe-modus kjører ikke PHP; den viser bare URL-en i en ramme. For server-side-kode, bruk file="...".

Overføring av variabler til PHP-skript

Den kraftigste funksjonen i Include Me er å sende parametere fra shortcoden til den inkluderte PHP-filen. I shortcoden skriver du:

1[includeme file="greeting.php" name="Alexey" plan="Pro"]

Inne i greeting.php får du tilgang til attributtene via den globale $attrs-matrisen:

1<?php
2$user_name = $attrs['name'] ?? 'Guest';
3$user_plan = $attrs['plan'] ?? 'Free';
4
5echo "<p>Hello, {$user_name}! Your plan: {$user_plan}.</p>";

Dette gjør Include Me til en mini-malmotor. Den samme PHP-filen genererer forskjellig utdata avhengig av shortcode-attributtene. Praktiske scenarioer:

  • Priskalkulator. Ett enkelt calc.php-skript mottar base_price og discount fra shortcoden, og viser forskjellige beregninger på forskjellige sider.
  • Personlig blokk. cta.php aksepterer heading og button_text, hvert innlegg har sin egen overskrift og knapp, men HTML-skjelettet er delt.
  • Kundedashbord. client-stats.php mottar client_id og sender ut data for en spesifikk klient fra en ekstern CRM.

Hva Include Me ikke gjør: begrensninger

Utvidelsen løser en smal oppgave og prøver ikke å være en sveitsisk armékniv. Ulemper verdt å kjenne til før installasjon:

  • Kun administratorer. Shortcoden fungerer bare i innlegg forfattet av en administrator. Forfattere og redaktører kan ikke bruke Include Me; dette er en bevisst sikkerhetsbegrensning (versjon 1.2.2+).
  • Ingen visuell editor. Intet brukergrensesnitt i administrasjonspanelet: utvidelsen legger ikke til en metaboks for filvalg. Alt gjøres manuelt via shortcode.
  • Filtypen .php kreves for kjøring. En fil med navnet script.inc med PHP-kode vil IKKE kjøres; utvidelsen setter den inn som tekst. Gi den nytt navn til script.php.
  • Ingen mellomlagring. Hvert shortcode-kall leser filen fra disk eller kjører PHP-en på nytt. For sider med høy trafikk og tunge skript, mellomlagre utdataene selv (via Transients API eller en utvidelse for mellomlagring på sidenivå).

⁉️🤔 Ofte stilte spørsmål

Fungerer Include Me med moderne WordPress-versjoner?

Ja, utvidelsen er testet opp til WordPress 6.9.4 og krever versjon 6.1 eller høyere. Den siste oppdateringen (1.3.7) ble utgitt i februar 2026, og forfatteren opprettholder kompatibilitet med hver større WP-utgivelse.

Er det trygt å inkludere PHP-filer via shortcode?

Siden versjon 1.2.2 kjører utvidelsen PHP-filer bare fra en mappe inne i nettstedets rot og bare for administrator-forfattede innlegg. Dette forhindrer kjøring av vilkårlig kode via XSS eller URL-substitusjon. I tillegg bør du begrense mappen via define('INCLUDE_ME_DIR', '...') og unngå å bruke '*' med mindre det er absolutt nødvendig.

Hvordan skiller Include Me seg fra Insert Pages-utvidelsen?

Insert Pages fokuserer på å sette inn innhold fra andre innlegg; den har et rikt sett med formaterings- og innpakningsalternativer. Include Me er enklere og designet for å jobbe med filer: HTML, PHP, TXT. Hvis oppgaven din bare er å hente inn et annet innlegg, er Insert Pages mer praktisk. Hvis du trenger PHP-skript og eksterne filer, er Include Me valget.

Kan jeg sette inn den samme filen på ti sider?

Ja, det er akkurat det utvidelsen er designet for. Én fil i /wp-content/include-me/ inkluderes via den samme shortcoden på et hvilket som helst antall sider. Rediger filen, så oppdateres innholdet overalt umiddelbart uten å måtte lagre hvert innlegg på nytt.

Hvorfor sender ikke PHP-filen min ut noe?

Tre vanlige årsaker: (1) filen er ikke i INCLUDE_ME_DIR-mappen, og banen er feil; (2) det finnes en fatal feil i PHP-koden (sjekk WP_DEBUG og serverlogger); (3) filen ble lagret med filtypen .html eller .inc i stedet for .php (Include Me kjører bare .php).

Hva hvis utvidelsen slutter å motta oppdateringer?

Include Me består av bare noen få linjer med kode (ifølge forfatteren) og er ikke avhengig av eksterne tjenester. Selv uten oppdateringer vil den fortsette å fungere i årevis; logikken er ikke knyttet til WP REST API, blokker eller Gutenberg-spesifikke funksjoner. Den grunnleggende WordPress shortcode-mekanismen har ikke endret seg siden versjon 2.5.

Hva du skal gjøre hvis du trenger mer: alternativer og neste steg

Hvis Include Me ikke dekker behovene dine, her er to retninger for utvidelse:

  • Sette inn innlegg med formatering: Insert Pages-utvidelsen henter innhold fra andre innlegg med fleksible visningsinnstillinger (tittel, utdrag, egendefinert innpakning).
  • Full PHP-motor: WPCode-utvidelsen (tidligere Insert Headers and Footers) lar deg sette inn PHP-snutter globalt eller betinget, med syntaksutheving og feilkontroll.

Start med Include Me: for den typiske oppgaven «sett inn en ekstern fil i et innlegg» er den mer enn nok. Og hvis du allerede har brukt denne utvidelsen eller løst en lignende oppgave på en annen måte, del i kommentarene hvilket verktøy du valgte.