✅ WEB- och WordPress -nyheter, teman, plugins. Här delar vi tips och bästa webbplatslösningar.

Lägg till en anpassad permalänkinställning för din anpassade inläggstyp i WordPress

8

Det här är en handledning om hur du lägger till en anpassad inställning på WordPresss adminsida "Inställningar > Permalänkar" för att definiera slug för din anpassade inläggstyp. Om du utvecklar ett tema eller plugin för andra som har en inbyggd anpassad inläggstyp, att lägga till den här inställningen kommer att uppskattas av användaren för att låta dem bestämma URL-strukturen för anpassad inläggstyp.

Jag kommer inte att gå igenom i detalj hur man lägger till en anpassad inläggstyp; om du är osäker rekommenderar jag att du tar en titt på hur man lägger till en anpassad inläggstyp.

Anta att du har en kod för att registrera din anpassade inläggstyp så här:

Den del vi är intresserade av är rewriteargumentet. Det är här vi definierar vilken slug posttypen kommer att få framför alla sina inlägg. Din kod för att registrera en anpassad inläggstyp kan vara något annorlunda, t.ex. utan ‘ with_front‘, men det vi är intresserade av här är ‘ slug‘:

Med den här koden hårdkodar du praktiskt taget vad inläggens permalänksslug kommer att vara. En posttyp för referenser kan användas för många typer av innehåll och temaanvändare; t.ex. projekt, portfolio, kundreferenser, företagsreferenser etc. För att göra ditt tema flexibelt kanske du vill låta temaanvändaren själv bestämma posttypens slug.

Så låt oss ta en titt på hur man gör det!

Lägger till och sparar fältet

Att använda WordPress Settings API förenklar detta något för oss. Allt vi behöver är att lägga till ett inställningsfält och tala om för WordPress vilken adminsida vi vill att den ska visas på – i vårt fall inställningssidan för permalänkar. Tänk på att vi måste skriva en funktion som faktiskt sparar värdet också, vilket vi gör i slutet.

Vi hakar på vår funktion i admin_initkroken och registrerar vår inställning. När vi registrerar en inställning definierar vi vilken funktion den ska köra för att mata ut inställningen:

add_action('admin_init', function() { add_settings_field('mytheme_reference_slug', __('References base', 'txtdomain'), 'mytest_reference_slug_output', 'permalink', 'optional'); });

Inställning av argument fyra av [add_settings_field](https://developer.wordpress.org/reference/functions/add_settings_field/)()till 'permalink'säger åt WordPress att lägga till inställningen på sidan Inställningar för Permalinks. Argument nummer tre är funktionen WordPress ska köra när inställningen matas ut – en funktion vi definierar härnäst (utanför den fasta funktionen):

I den här funktionen matar vi helt enkelt ut en grundläggande formtext <input>. För dess valueattribut hämtar vi värdet för inställningen med hjälp av [get_option](https://developer.wordpress.org/reference/functions/get_option/)(). Attributet placeholderär valfritt, men det är en god praxis att lägga in din standardsnigelbas så att temaanvändaren vet om de vill ändra dess värde eller inte.

Om du sparar din kod och går till din WordPress Permalinks-sida nu, bör du se ditt fält i slutet:

Lägg till en anpassad permalänkinställning för din anpassade inläggstyp i WordPress

För tillfället sparar inte inställningen sitt värde, det är nästa steg.

Vi måste lägga till en annan funktion kopplad till admin_initsom kontrollerar om vår inställning skickades i form av permalänkstruktur eller inte. Och i så fall bör den sparas med [update_option](https://developer.wordpress.org/reference/functions/update_option/)().

add_action('admin_init', function() { if (isset($_POST['permalink_structure'])) { update_option('mytheme_reference_slug', trim($_POST['mytheme_reference_slug'])); } });

När du sparar Permalinks-inställningar skickas ett formulär in, så att vi kan få värdena via PHPs $_POSTglobala variabel. De inlämnade värdena från formuläret lagras som en array med ingångens namnattribut som nycklar. I vårt fall sätter vi ett namnattribut ‘ mytheme_reference_slug‘ på vår inmatning, så att vi kan komma åt det inlämnade värdet med $_POST['mytheme_reference_slug'].

Nu bör inställningen fungera fullt ut på sidan Permalänkinställningar. Den sista delen är att fästa värdet av denna inställning på vår anpassade inläggstyp.

Använd vår inställning för att göra vår anpassade inläggstyp

För att få vår anpassade inläggstyp att använda det anpassade värdet för vår inställning, återgår vi till register_post_type()funktionsanropet och ändrar rewriteargumentet till något så här:

Allt vi gör här är att hämta värdet av vårt nya alternativ. Om den är tom kommer standard ('reference') att användas.

Och det är allt! Nu kommer din anpassade inläggstyp att använda vilken slugbas som är inställd på sidan med Permalinks-inställningar. Du kan lägga till fler inställningar på samma sätt, till exempel för anpassade taxonomier.

Hela koden

Alla tillsammans nu.

Inspelningskälla: awhitepixel.com

Denna webbplats använder cookies för att förbättra din upplevelse. Vi antar att du är ok med detta, men du kan välja bort det om du vill. Jag accepterar Fler detaljer