kaxigt.com

Jag skriver om webben för webben

Exkludera utvald kategori från The Loop

Postad: 19 september 2009 | Wordpress | No Comments
Lästid: 2 minuter

Många som bloggar har med all säkerhet också många kategorier.

Denna post innehåller kod-snippar som du kan använda. Det är alltid bra att ta en backup av din stilmall och funktionsfil innan.

När vi skriver en post så indexeras den i sin utvalda kategori och bloggen visar sedan alla senaste posterna per kategori. Låt oss säga att du inte vill att alla kategorier ska visas i The Loop på indexsidan, istället vill du kanske ge en viss kategori sin specifika sida där endast den utvalda kategorin ska visas.

Det här är inte så svårt att få till.

Börja med att leta dig fram till The Loop som börjar med följande kod:

<php if (have_posts()) :>

Direkt efter den koden koden kommer denna:

<php while (have_posts()) : the_post(); >

Tillsammans så generar dessa två koder att alla inlägg, oavsett kategori, visas som senaste poster.

Men vi ville ju exkludera en viss kategori – eller hur?
Då måste vi först ta reda på vilket ID som är kopplat till respektive kategori. Du hittar kategorins ID genom att gå in i Post och sedan välja Categories.

Anteckna alla ID så du vet vilka som hör till sin respektive kategori. När du har valt ut din/dina kategorier som du inte vill ska visas i The Loop så går du tillbaka till denna kod:

<php while (have_posts()) : the_post(); >

Här ska vi stoppa in några querystrings så vi får det vi vill ha.

Låt oss säga att kategori fotografier har ID 5 och att kategori recept har ID 7 och det är dessa två kategorier vi vill exkludera för att de ska få sina särskilda sidor, då stoppar vi in deras ID i vår querystring – så här:

<php if ( have_posts() ) : query_posts($query_string .'&cat=-5,-7'); while ( have_posts() ) : the_post(); >

Genom att placera ett minustecken framför ID så kommer inte dessa två kategorier att visas i The Loop. Sedan är det bara att börja skapa de nya sidorna för just Fotografier och Recept.

Kategori Fotografier

<php if ( have_posts() ) : query_posts($query_string .'&cat=5'); while ( have_posts() ) : the_post(); >

Kategori Recept

<php if ( have_posts() ) : query_posts($query_string .'&cat=7'); while ( have_posts() ) : the_post(); >