december 29, 2021

Hur man arkiverar WordPress-inlägg och sidor

Vad gör du med publicerat WordPress-innehåll som du vill ta bort från allmänheten men inte vill papperskorgen?

du arkiverar den. Enkel. Tja, Nej. Funktionalitet som förmodligen borde vara inbyggd eller definitivt bör vara lätt att implementera är faktiskt onödigt svårt. Det hjälper inte heller att WordPress muddies vattnet genom att använda arkivtermen för äldre inlägg.

i den här artikeln visar jag dig hur du kan arkivera innehåll med hjälp av Edit Flow-plugin för att göra tunga lyft.

foto av ett arkiv
arkivering är en viktig men saknad del av WordPress

Obs: tillvägagångssättet som beskrivs i den här artikeln gäller inlägg, sidor och anpassade posttyper. Jag har använt termen ”post” helt enkelt för bekvämlighet.

för att tillhandahålla arkivering måste vi lägga till ytterligare ett steg i slutet av publiceringsprocessen, ett alternativ efter ”publicerad”, genom att lägga till en ny poststatus för ”Arkiverad”. Arkivering av inlägg är då en enkel fråga om att ändra poststatus till den nya statusen och se till att det arkiverade inlägget inte visas någonstans på Webbplatsen, inklusive i sökresultat och menyer.

WordPress har åtta inbyggda poststatus och det är väldigt enkelt att lägga till listan. Enkla uppgifter som att lägga till den nya statusen i rullgardinsmenyn poststatus i rutan publicera meta på skärmen post edit är dock frustrerande svårt. Med inget användbart filter eller åtgärd tillgängligt i WordPress själv använder den vanligaste lösningen jQuery-assisterad HTML-akrobatik för att tvinga nya statuser till användargränssnittet i webbläsaren. Inte exakt utveckling bästa praxis.

lyckligtvis kan Edit Flow plugin hjälpa oss att utöka publicerings arbetsflöde samtidigt undvika klientsidan HTML gräl.

installera insticksprogrammet redigera flöde

redigera flöde har många bra funktioner för att hantera inlägg i en teammiljö. Vi kommer inte att gå in i dem här men jag rekommenderar att du läser Paul Kaisers recension av Edit Flow här på WPMU.org.

Stäng av oanvända moduler

för tillfället behöver vi bara ha Edit flows anpassade Statusmodul aktiverad, så en gång installerad klickar du på Redigera flöde i huvudmenyn och inaktiverar alla moduler förutom anpassade statuser.

Screen grab av Redigera Flödesmoduler management skärmen
för arkivering behöver du bara anpassade status men kolla in de andra modulerna för

konfigurera status

Screen grab visar uppdaterad Status
uppdaterad status dropdown

klicka på anpassade statuser och,

  1. gör Utkaststatusen till standardstatus genom att hålla musen över ”utkast” och klicka på menyalternativet ”gör Standard”.
  2. ta bort alla statuser utom utkast (igen, rulla musen över statusen och klicka på alternativet Ta bort meny).
  3. använd formuläret ” Lägg till ny ”för att lägga till en ny anpassad status för”Arkiverad”. Klicka på fliken” Alternativ ” och välj de inläggstyper som du vill kunna arkivera – anpassade inläggstyper finns också tillgängliga.

nu, i rutan publicera meta på skärmen post redigera, status rullgardins visar anpassade status, inklusive den nya arkiverade status.

för att arkivera ett inlägg, välj helt enkelt” Arkiverad ”och klicka på”Uppdatera”. Detta tar bort inlägget från fronten, inklusive sökningar. Du ser också att en” arkiverad ” länk, komplett med postantal, läggs till statuslänkarna högst upp på postlistsidan, vilket ger dig snabb och enkel åtkomst till de arkiverade inläggen

Skärmgrab som visar Arkiverad i poststatuslänkarna på postlistskärmen
den nya arkiverade länken läggs till på postlistskärmen

men hur är det med menyer?

WordPress ignorerar statusen när det gäller att bygga menyer. Om du har lagt en sida i menyn visas den även om dess status är arkiverad eller faktiskt utkast.

för att spara att du måste kontrollera dina menyer varje gång du arkiverar en sida, använd den här koden antingen i dina funktioner.php-fil eller i ett enkelt plugin:

function remove_archived_from_menu($post) {_wp_delete_post_menu_item($post->ID);}add_action( 'publish_to_archived', 'remove_archived_from_menu');

detta hakar i statusändringsåtgärd som avfyras varje gång ett inlägg ändrar status. I det här fallet är vi intresserade av ändringen från ”publicera” till ”Arkiv” (utkastsposter är osannolikt att vara i en meny). När den ändringen inträffar vill vi ta bort alla menyalternativ med inläggets ID.

arkivering av innehåll är en ganska grundläggande funktion i ett innehållshanteringssystem och det är lite förvånande att WordPress inte redan har den här funktionen inbyggd. Att rulla din egen lösning är besvärlig och den enklaste lösningen är ett hack som inte skulle sitta bra med de flesta utvecklare.

använda Redigera flöde för att ge arkivering är en rättfram, hacka-fri lösning som inte bara ger enkel arkivering funktionalitet men också en introduktion till en kraftfull content management plugin.

Lämna ett svar

Din e-postadress kommer inte publiceras.