For at man kan få det meste ud af sin WordPress hjemmeside, kan det nogle gange være nødvendigt selv at kode en smule.
Det, at lave et WordPress page template, er ikke særlig svært – og du kan gøre det på under 5 minutter – også selvom du ikke ved hvordan man koder! Det kommer ikke til at have en anden funktion end din blogside, men du vil da opleve at det virker.
I denne guide vil jeg til gengæld vise dig hvordan du tager det skridtet videre, og laver et WordPress page template, som viser indlæg fra én bestemt kategori. Det er mega smart, hvis du vil dele din blog lidt op, og gøre den mere overskuelig for dine læsere – og ja, ikke mindst dig selv!
Øhm, hvad er et “WordPress page template”??
Ja, lad os da lige få det på plads inden vi går i gang med at lave det.
Et WordPress page template er et særligt “layout” til dine WordPress sider. Det behøver ikke være særligt i den forstand, at du laver om på designet (men det kan du sagtens!), det kan også bare være, at du har rettet alt til dansk, og lavet et page template, der hedder “Blog dansk”. Det kunne være nyttigt, hvis du skriver forskellige indlæg på flere forskellige sprog.
Du kan aktivere et WordPress page template ved at logge ind på dit Kontrolpanel.
Derfra skal du gå ind på en af dine sider for at redigere siden.
I højre side af skærmen, vil du nu kunne se en metaboks, der hedder “Sideegenskaber” og derunder finder du “Skabelon” – dette er vel og mærket KUN hvis der findes et eller flere page templates til dit tema.
Okay, hvordan starter jeg så?
Du skal først og fremmest åbne en eller anden form for editor, hvori du kan skrive lidt PHP kode. Jeg vil anbefale dig at bruge Adobe Dreamweaver – men har du ikke det, så kan jeg anbefale Sublime Text 2 eller Notepad++.
Når du har åbnet din editor, skal du allerførst starte med at slette alt hvad der evt. er i forvejen når du opretter en PHP-fil (jeg ved at Dreamweaver har noget standardkode) – og tilføje følgende kode overst i din fil:
<?php /* Template Name: Min første skabelon */ ?>
Du navngiver selvfølgelig din skabelon som du har lyst. En god idé er, at navngive din skabelon, så du ved hvad du vil bruge den til. Du kan se på min skabelon f.eks. (på billedet oven for), at jeg kalder den for “Page without comments” – så ved jeg, at denne skabelon skal jeg bruge på de sider, hvor jeg slet ikke vil have kommentarer.
Når du har navngivet din skabelon, så gem den som en PHP-fil.
Husk, du må ikke bruge mellemrum, ej heller må du bruge æ, ø og å i dit filnavn. Så ovenstående template kunne f.eks. hedde “Min-skabelon-1.php”.
[wp_ad_camp_1]
Er det virkelig alt?
Nej…..
Det er det desværre ikke, vi skal have loopet med, så vi kan få nogle indlæg frem på din side. For at gøre dette, skal vi have fat i index.phpfra din tema-mappe. Eller, hvis dit tema allerede har et page template som hedder noget med “blog”, så er det dén fil du skal have fat i – i hvert fald, skal vi have fat i den fil, der viser blogindlæggene på din hjemmeside, og på de fleste temaer, er det index.php.
Når du har åbnet index.php i din editor, så skal du markere det hele, og kopiere det over i din skabelon-fil – altså den fil der hedder “Min-skabelon-1.php”.
Herunder er min kode, når jeg har kopieret index.php over i min skabelon fil:
<?php /** * Template Name: Min første skabelon */ ?> <?php get_header(); ?> <div id="page"> <div class="content"> <article class="ss-full-width"> <div id="content_box" > <div id="content" class="hfeed"> <?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?> <div id="post-<?php the_ID(); ?>" <?php post_class('g post'); ?>> <header> <h1 class="title"><?php the_title(); ?></h1> </header> <div class="post-content box mark-links"> <?php the_content(); ?> <?php custom_link_pages(array('before' => '<div class="pagination">' . __(''), 'after' => '</div>', 'next_or_number' => 'next_and_number', 'nextpagelink' => __('Next'), 'previouspagelink' => __('Previous'), 'pagelink' => '%','echo' => 1 )); ?> </div><!--.post-content box mark-links --> </div><!--.g post--> <?php comments_template( '', true ); ?> <?php endwhile; ?> </div> </div> </article> <?php get_footer(); ?>
Og lad nu være med at kopiere min kode over, for jeg kan, næsten med garanti, fortælle dig, at vores koder ikke er ens!Prøv nu at gemme din fil, og upload den til din temamappe. Nu kan du så vælge din skabelon, og vise den på en bestemt side. Du vil dog se, at det er alle indlæg der bliver vist, og det er fordi vi endnu ikke har indsat den lille kode, som sorterer de kategorier fra, som du ikke vil vise.
Hvad skal jeg så gøre?
Du skal indsætte følgende stykke kode, i din skabelon fil:
<?php query_posts( 'cat=DIN KATEGORI ID HER' ); ?>
Du skal sørge for at finde ud af, hvilken ID den kategori, som du gerne vil vise, har.
For at gøre det, skal du gå ind i Indlæg > Kategorier –og derefter holde musen på den kategori du vil bruge, men du skal ikke klikke på den. I stedet skal du kigge nede i venstre hjørne af din browser, hvor der vises en URL – og deri står din kategori – se bare på billedet herunder:
Når du har fundet dit ID, skal du sætte den ind i den ovenstående kode, så der ikke står “DIN KATEGORI ID HER”, men i stedet står der bare “37”, eller hvad din ID nu er. Når du har gjort det, så skal ovenstående kode sættes ind i din skabelon-fil, og den skal indsætte indendit loop bliver kørt – så din kode skal se ud således:
<?php /** * Template Name: Min første skabelon */ ?> <?php get_header(); ?> <div id="page"> <div class="content"> <article class="ss-full-width"> <div id="content_box" > <div id="content" class="hfeed"> <?php query_posts( 'cat=37' ); ?> <?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?> <div id="post-<?php the_ID(); ?>" <?php post_class('g post'); ?>> <header> <h1 class="title"><?php the_title(); ?></h1> </header> <div class="post-content box mark-links"> <?php the_content(); ?> <?php custom_link_pages(array('before' => '<div class="pagination">' . __(''), 'after' => '</div>', 'next_or_number' => 'next_and_number', 'nextpagelink' => __('Next'), 'previouspagelink' => __('Previous'), 'pagelink' => '%','echo' => 1 )); ?> </div><!--.post-content box mark-links --> </div><!--.g post--> <?php comments_template( '', true ); ?> <?php endwhile; ?> </div> </div> </article> <?php get_footer(); ?>
Nu kan du så gemme din skabelon, og uploade den til din tema-mappe, og hvis du har gjort alt korrekt, så skulle du gerne have en side, hvor det kun er indlæg i den valgte kategori der bliver vist! Hvis du endnu ikke har fået det til at virke, så er du mere end velkommen til at skrive en mail til mig, så skal jeg nok hjælpe dig. Du må også meget gerne skrive dit problem i en kommentar, så kan andre også se dit problem, og evt. hvordan du løser det.
Lennart Greig skriver
Mit wordpress er version 5.1.1. og jeg forsøger at benytte din: lav-et wordpress-page-template.
Du har en figur: Sideegenskaber, som jeg ikke kan finde i mit kontrolpanel. Jeg har uploade, min
kopi af “Min-skabelon-1.php , men jeg kan ikke se den under skabeloner el. temaer.
Jeg har flere skabeloner liggende i biblioteket, men de hedder efternavn .json og ikke .php
Mine sider på https://herlige.kertemindesommerby.dk, hvor jeg bruger oceanwp og elementor.
Jeg er også i tvivl om elementor kan bruges til indlæg sider. Jeg har pt. en enkelt indlægsside:
https://herlige.kertemindesommerby.dk/skriv , men din template er at foretrække.
Aris skriver
Hej Lennart
Du finder det under sideattributter når du opretter en side.
Bruger du den nye Gutenberg editor?
MVH
Aris