Du er måske stødt på, at i rollen som temaudvikler er det en standard at bygge dit tema med webydelse i tankerne. Det betyder, at du skal sørge for, at de billeder, der udgives i dit tema, ikke er i “fuld” størrelse, hvis de kan være mere end 100 kilobyte.
Også at gøre brug af WordPress’ funktionalitet for HTML-billedattributten srcset
er en anden grund til at bruge wp_get_attachment_image()
-funktionen til at udgive billeder.
En anden brug ville være ved udgivelse af blogindlæg med fremhævede billeder. Som temaudvikler vil du sikre dig, at du enten angiver: (a) en af standardstørrelserne for indlægsminiaturer eller (b) oprette din egen brugerdefinerede størrelse for indlægsminiaturer.
Der er tilfælde, hvor du måske ikke behøver at bruge en brugerdefineret størrelse for indlægsminiaturer. Du kan dog i stedet bruge en standardstørrelse for indlægsminiaturer, der passer perfekt til dine behov.
De standardstørrelser for miniaturebilleder, som du kan bruge, er følgende:
-
thumbnail
(bruger størrelsen 150px × 150px) -
medium
(bruger størrelsen 300px × 300px) -
medium_large
(bruger størrelsen 768px × 0px) -
large
(bruger størrelsen 1024px × 1024px)
I disse tilfælde kan du nemt angive, om du har en lignende størrelse til brug for en af disse standardstørrelser for miniaturebilleder. Det eneste, du skal gøre, er at bruge en af de ovennævnte strenge i $size
-parameteren i funktionen the_post_thumbnail().
Du vil bemærke, at disse standardstørrelser for miniaturebilleder til indlæg næsten alle er kvadratisk beskårne billeder. Dette skyldes sandsynligvis det maksimale rum, som et billede kan udgives på – et kvadrat. For at udnytte pladsen bedst muligt blev det besluttet at gøre disse standardstørrelser af indlægsminiaturer til firkantede billeder.
Når du skal bruge en brugerdefineret størrelse af indlægsminiaturer
Der er dog tilfælde, hvor du har brug for at udskrive et billede, der ikke er firkantet. Tag for eksempel, at du skal tilføje et featured billede over din blog enkeltartikel ved hjælp af funktionen the_post_thumbnail()
.
Du kan bruge følgende kode, der vil output et featured billede af din artikel med størrelsen 1024px × 768px:
add_image_size( 'single-feature', 1024, 768, true );
Og hurtigt identificere, hvad dette betyder i lægmandstermer:
- add_image_size() – opretter en brugerdefineret miniaturestørrelse for indlæg
- ‘single-feature’ – parameter
$name
, blot et navn på den brugerdefinerede miniaturestørrelse for indlæg - 1024 – parameter
$width
, bredden af den brugerdefinerede indlægsminiaturstørrelse - 768 – parameter
$height
, højden af den brugerdefinerede indlægsminiaturstørrelse - true – parameter
$crop
, betyder, om billedet skal (a) beskæres hårdt eller (b) skaleres til den brugerdefinerede indlægsminiaturstørrelse. Mere info i WP Dev-dokumentationen
Som yderligere info: Fra eksemplet blev den angivne bredde og højde valgt (1024 × 768), da de er de almindelige størrelser, der skal bruges til fremhævede billeder. Dette behøver dog ikke at betyde, at du ikke kan bruge andre størrelser. Sørg for at se, hvad der passer bedst til dit temadesign, og brug det.
Sådan opdaterer du brugerdefinerede indlægsminiaturer
Som du vil afprøve de nye billedstørrelser til dine WordPress-billeder, vil du bemærke, at du kan have problemer med at opdatere bredden og højden uden at ændre $name
af den brugerdefinerede indlægsminiaturstørrelse.
Lad os for eksempel tage, at du har den gamle størrelse:
add_image_size( 'single-feature', 1024, 768, true );
Men nu skal du opdatere størrelsen på denne ‘single-feature’-minibillestørrelse til følgende:
add_image_size( 'single-feature', 1366, 768, true );
Du kan se, at ændringen var i bredden fra 1024 til 1366. Men når du opdaterer den skabelon, hvori denne størrelse skal vises, vil den stadig vise billedet med bredden 1024. Hvordan kan dette rettes?
For at afhjælpe dette skal du regenerere miniaturebilledet.
Så til at starte med skal du sørge for, at du har opdateret din miniaturebilleds bredde og højde, og derefter installere plugin’et Regenerate Thumbnails. Følg instruktionerne i plugin’et, og du vil derefter have regenereret thumbnailstørrelserne med succes.
Regenerering af alle dine billeder kan tage noget tid, især hvis dit websted har mange billeder i dit mediebibliotek.
Hvor du skal placere add_image_size-funktionen
Den add_image_size()
funktion vil ikke fungere, medmindre du placerer den korrekt i WordPress after_setup_theme
action hook. Det betyder, at følgende eksempelkode:
add_image_size( 'archive-featured', 792, 446, true );
skal være inden for følgende action hook i dit temas functions.php
fil under:
function ms_setup() {add_image_size( 'archive-featured', 792, 446, true );}add_action( 'after_setup_theme', 'ms_setup' );
Tilføjelse af add_image_size i Underscores-temaet
Et meget populært startertema kaldet Underscores-temaet eller _s-temaet har et godt sted at tilføje dine add_image_size()
-funktioner.
Du kan tilføje den brugerdefinerede post thumbnail size-funktion add_image_size()
under add_theme_support( 'post-thumbnails' );
-linjen i functions.php
-filen i Underscores-temaet.
Grunden til, at du kan tilføje funktionen add_image_size()
herunder, er, at den allerede er i after_setup_theme
-handlingskrogen, der blev nævnt tidligere.
Snippet til tilføjelse af billedstørrelsefunktion til WordPress-temaer
Hvis du vil, kan du kopiere nedenstående snippet til add_image_size i Underscores-temaet til din fremtidige reference:
/* * Custom post thumbnail sizes for use across the theme. * * @link https://developer.wordpress.org/reference/functions/add_image_size/ */add_image_size( $name, $width, $height, $crop );
Bemærk: Sørg for at definere de parametre, der bruges i snippet, for at sikre dig, at du ikke modtager PHP-advarselsfejl i dit tema. Ovenstående uddrag bruges som en skabelon, som du kan copy-paste ind i dine temafunktioner.
Konklusion
Tak for at du læste denne artikel! Lad mig venligst vide dine tanker og din opsætning om brugerdefinerede indlægs miniaturebillederstørrelser.
Hvis du nød denne artikel, vil du måske gerne vide Tema fejl i opsætning af brugerdefinerede indlægstyper. For det første skal du ikke registrere brugerdefinerede posttyper i dit tema!