Jeg har lige haft et problem med, at min hjemmeside viste de samme artikler, lige meget om jeg var på side 1, 2 eller 3… Det var ret frustrerende, da mine læsere ikke kunne finde frem til mine ældre artikler. Selvom de er “gamle” så er de stadigvæk gode… Men jeg har da endelig fundet en løsning på problemet – og jeg er ked af at sige det, men det kræver en smule kodning.
Er dette normalt?
Nej, din hjemmeside skulle jo gerne vise de ældre artikler også, men af en eller anden (uforklarlig, i mit hoved) grund, så vælger den at vise de samme artikler på alle sider. Jeg er glad for at jeg fandt ud af det, inden mine læsere begyndte at smutte fra bloggen. Det skal bare virke… basta!
I hvilken fil ligger fejlen?
Det er så forskelligt fra blog til blog. Vi bruger ikke alle sammen det samme tema – men til gengæld kører alle temaer et såkaldt “loop”. “Loopet” henter dine artikler, og inde i loopet kan du så bestemme hvad der skal vises af artiklen. Typisk viser man jo titlen, meta (hvem har skrevet artiklen, hvornår den er udgivet osv.) og antal kommentarer. Det er dette “loop” vi skal have fat i. Det starter typisk således:
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
I mit tema, finder jeg “loopet” i index.php filen, og jeg vil også anbefale dig, at starte med at kigge der. Hvis ikke det er i index-filen, så er den i den fil, som viser din forside. Det kan jo være du har en “forside”-skabelon – hvis det er tilfældet, så skal du have fat i den fil.
Jeg har fundet det! Hva så nu?
Ja nu skal vi så indsætte et lille “fix”, så din “pagination”, som det hedder, virker som den skal. Altså, at din blog viser dine sider, som den skal. Det lille “fix” kan se forskelligt ud fra blog til blog – som du ser herunder, så udelukker jeg kategori ID nr. 85 fra min forside, dvs. at jeg ikke vil vise artikler fra den kategori på min forside. Hvis ikke du vil have denne “blokade”, så kan du bare fjerne hele linje 4 – men sådan her ser koden ud:
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $args= array( 'cat' => -85, 'paged' => $paged ); query_posts($args); ?>
Og som sagt, hvis IKKE du vil have udelukket nogle kategorier fra din forside, så skal koden bare se sådan her ud:
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $args= array( 'paged' => $paged ); query_posts($args); ?>
Fedt nok – men hvor skal jeg smide koden?
Dette er den sidste del af processen. Nu skal vi have fundet ud af, hvor din kode skal være. Det er nu ret enkelt – for vi har jo fundet ud af hvor den første del af koden er – altså denne del:
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
Det du skal gøre nu, er at smide det lille “fix” lige inden denne kode, så den ser således ud:
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $args= array( 'cat' => -85,// Husk, dette kan du fjerne! 'paged' => $paged ); query_posts($args); ?> <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
Når du så har det, så skal du gemme den fil, og så skulle det gerne virke.
Nu kan du, og dine besøgende, klikke Jer rundt på hele siden, uden at få det samme indhold vist hele tiden.
Skriv et svar