WordPress erbjuder en god flexibilitet för utvecklare och webbplatsägare. En av de mest kraftfulla filerna i ett WordPress-tema är functions.php, där du kan lägga till anpassad kod för att ändra och utöka funktionaliteten.
I denna guide delar vi 20+ kodsnuttar som hjälper dig att skräddarsy din WordPress-tema på ett smidigt och säkert sätt.
För att minimera riskerna rekommenderas det att alltid säkerhetskopiera din webbplats innan du gör några ändringar i functions.php. Om möjligt, arbeta på en staging-sajt eller en lokal utvecklingsmiljö först, så att du kan testa koden utan att påverka den live sajten. Kom också ihåg att alltid skriva kod noggrant och dubbelkolla den innan du sparar filen.
Anpassning av användarupplevelse
Anpassa webbplatsens titel

Vill du lägga till ett eget prefix i titeln på alla sidor? Med functions.php kan du automatiskt modifiera sidtitlar utan att redigera varje inlägg manuellt. Så här lägger du till webbplatsens namn före sidtiteln:
function custom_title_prefix($title) {
return 'Min Webbplats | ' . $title;
}
add_filter('wp_title', 'custom_title_prefix');
Anpassa inloggningssidan
Om du vill ge din WordPress-inloggningssida ett personligt utseende, kan du ändra logotypen. Perfekt för dig som vill ge en mer professionell touch till din webbplats!
function custom_login_logo() {
echo '<style type="text/css">
#login h1 a { background-image: url(' . get_stylesheet_directory_uri() . '/images/custom-logo.png) !important; }
</style>';
}
add_action('login_head', 'custom_login_logo');Lägg till Google Fonts till ditt tema
Vill du använda en specifik Google Font på din WordPress-sida? Perfekt för nybörjare som vill anpassa sitt temas typografi utan att redigera CSS-filer manuellt. Här är koden:
function add_google_fonts() {
wp_enqueue_style('custom-google-fonts', 'https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;700&display=swap', false);
}
add_action('wp_enqueue_scripts', 'add_google_fonts');
Omvandla inläggstitlar till versaler
Vill du att alla inläggstitlar automatiskt ska visas i versaler?
Kan vara snyggt för bloggar eller nyhetssidor där du vill ha ett enhetligt utseende.
function uppercase_post_titles($title) {
return strtoupper($title);
}
add_filter('the_title', 'uppercase_post_titles');
Byt standard ”Från”-adress i e-postutskick
När WordPress skickar e-post (t.ex. lösenordsåterställning) kan du ändra avsändaradressen. Detta ser mer professionellt ut än den generiska WordPress-adressen.
function custom_email_sender($email) {
return 'no-reply@dindomän.se';
}
add_filter('wp_mail_from', 'custom_email_sender');
Anpassa inloggningssidan
Vill du visa ett välkomstmeddelande på inloggningssidan? Och möjligtvis visa upp din eller företagets egna logga. Detta kan vara perfekt om du har en medlemsportal eller en företagsinloggning.
#login h1 a {
background-image: url(' . esc_url( get_stylesheet_directory_uri() ) . '/images/custom-logo.png) !important;
background-size: contain;
width: 100%;
height: 80px;
}
';
}
add_action('login_head', 'custom_login_logo');
// Lägg till ett anpassat välkomstmeddelande på inloggningssidan
function custom_login_message( $message ) {
if ( empty( $message ) ) {
return '';
}
return $message;
}
add_filter('login_message', 'custom_login_message');
Lägg till en ”senast uppdaterad”-notis i inlägg
Om du vill visa när ett inlägg senast uppdaterades kan du göra det med detta kodsnutt. Särskilt användbart för bloggar eller guider där aktuellt innehåll är viktigt.
function last_updated_date($content) {
if (is_single() && 'post' === get_post_type()) {
$updated_time = get_the_modified_time('F j, Y');
return '<p><em>Senast uppdaterad: ' . $updated_time . '</em></p>' . $content;
}
return $content;
}
add_filter('the_content', 'last_updated_date');
Innehållshantering och struktur
Automatiskt lägga till ”Läs mer”-länk i utdrag
Om du vill att alla inläggsutdrag ska sluta med en ”Läs mer”-länk kan du använda detta enkla trick. Bra för att förbättra användarupplevelsen och få besökare att läsa hela inlägget!
function custom_excerpt_more($more) {
return '... <a href="' . get_permalink() . '">Läs mer</a>';
}
add_filter('excerpt_more', 'custom_excerpt_more');
Ändra längden på utdrag
Ändra hur många ord som visas i utdrag (excerpt) av dina inlägg. Kan vara bra om du vill uppnå en särskilt stil och design.
function custom_excerpt_length($length) {
return 20; // Ändra till önskat antal ord
}
add_filter('excerpt_length', 'custom_excerpt_length', 999);Lägg till en anpassad widget-area
Om du vill att din sidopanel eller footer ska ha en egen widget-area kan du enkelt registrera en ny. Detta tillåter dig att dra och släppa widgets i WordPress-panelen utan att behöva koda.
function custom_sidebar() {
register_sidebar(array(
'name' => 'Anpassad Sidopanel',
'id' => 'custom_sidebar',
'before_widget' => '<div class="widget">',
'after_widget' => '</div>',
'before_title' => '<h3>',
'after_title' => '</h3>',
));
}
add_action('widgets_init', 'custom_sidebar');Ändra standardgravatar
Ändra standardgravataren som visas för användare som inte har en egen gravatar.
function custom_default_avatar($avatar_defaults) {
$custom_avatar = get_template_directory_uri() . '/images/default-avatar.png';
$avatar_defaults[$custom_avatar] = 'Anpassad Gravatar';
return $avatar_defaults;
}
add_filter('avatar_defaults', 'custom_default_avatar');
Rensa all innehåll av specifika post typer
Denna rensar all innehåll av en viss typ sort, var försiktig med denna snutt då all innehåll av den typen/klassen går förlorad.
function delete_custom_post_type_content() {
$post_type = 'zzz'; // Replace with your custom post type (e.g., 'quotes', 'post', etc.)
// Query to get all posts of the custom post type
$args = array(
'post_type' => $post_type,
'posts_per_page' => -1, // Get all posts
'post_status' => 'any', // Get posts in any status (published, draft, etc.)
);
$query = new WP_Query($args);
// Loop through each post and delete it
while($query->have_posts()) {
$query->the_post();
wp_delete_post(get_the_ID(), true); // true means force delete (without going to trash)
}
// Reset post data after query
wp_reset_postdata();
}
add_action('init', 'delete_custom_post_type_content'); // Run this on WordPress initializationSäkerhet och prestanda
Begränsa antalet inloggningsförsök
Vill du blockera någon som försöker logga in för många gånger? Detta kan vara bra för säkerheten genom att förhindra att någon gissar lösenordet genom upprepade försök.
function limit_login_attempts($user, $username, $password) {
$attempts = get_transient('login_attempts_' . $username) ?: 0;
if ($attempts >= 3) {
return new WP_Error('too_many_attempts', __('För många misslyckade försök. Försök igen senare.'));
}
set_transient('login_attempts_' . $username, $attempts + 1, 300);
}
add_filter('wp_authenticate_user', 'limit_login_attempts', 10, 3);
Förhindra inloggningsförsök med fel användarnamn
För att förbättra säkerheten kan du blockera inloggningar där användarnamnet inte existerar, detta skyddar din webbplats från brute-force-attacker.
function block_invalid_usernames($username, $errors) {
if (!username_exists($username)) {
$errors->add('invalid_username', __('Felaktigt användarnamn.'));
}
}
add_action('wp_authenticate', 'block_invalid_usernames', 10, 2);
Avaktivera WordPress-emojis för bättre prestanda
WordPress laddar automatiskt emoji-skript, vilket kan sakta ner sidan. Detta kodsnutt kan snabba upp laddningstiden och minska onödiga HTTP-förfrågningar. Så här tar du bort det:
function disable_emojis() {
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');
}
add_action('init', 'disable_emojis');
Avaktivera kommentarer på hela sajten
Om du inte vill använda kommentarer på din webbplats kan du inaktivera dem helt.
function disable_comments_globally() {
// Inaktivera kommentarer för inlägg
remove_post_type_support('post', 'comments');
// Inaktivera kommentarer för sidor
remove_post_type_support('page', 'comments');
// Stäng av kommentarsfunktioner helt
add_filter('comments_open', '__return_false', 20, 2);
add_filter('pings_open', '__return_false', 20, 2);
}
add_action('init', 'disable_comments_globally');
Städa upp WordPress-administrationspanelen
Förbättra säkerheten genom att inaktivera möjligheten att redigera filer direkt från WordPress-administrationspanelen.
define('DISALLOW_FILE_EDIT', true);Ta bort menyalternativ i WordPress-admin
Om du bygger en webbplats för en kund kan det vara bra att ta bort onödiga menyalternativ från WordPress-admin. Detta hjälper till att förenkla adminpanelen och undvika förvirring för nybörjare.
function remove_admin_menus() {
remove_menu_page('edit.php'); // Inlägg
remove_menu_page('edit-comments.php'); // Kommentarer
remove_menu_page('themes.php'); // Utseende
remove_menu_page('plugins.php'); // Tillägg
remove_menu_page('users.php'); // Användare
remove_menu_page('tools.php'); // Verktyg
remove_menu_page('options-general.php'); // Inställningar
}
add_action('admin_menu', 'remove_admin_menus');
;Dölja WordPress-versionsnumret för säkerhet
Hackers kan utnyttja kända säkerhetshål i gamla versioner av WordPress. För att skydda din webbplats kan du dölja versionsnumret. Ett enkelt sätt att förbättra säkerheten utan att använda ett extra plugin!
function remove_wp_version() {
return '';
}
add_filter('the_generator', 'remove_wp_version');
Anpassning av funktionalitet
Lägg till en anpassad posttyp (t.ex. ”Portfölj”)
Om du behöver en ny sektion för exempelvis ”Projekt” eller ”Recensioner”. Detta gör det möjligt att skapa en mer dynamisk WordPress-webbplats med egna innehållstyper.
function create_custom_post_type() {
register_post_type('portfolio',
array(
'labels' => array('name' => __('Portfölj')),
'public' => true,
'has_archive' => true,
'supports' => array('title', 'editor', 'thumbnail')
)
);
}
add_action('init', 'create_custom_post_type');
Aktivera / deaktivera kommentarer för specifika sidor
Använd en filterfunktion för att välja vilka sidor eller inlägg som ska ha kommentarer aktiverade eller inaktiverade.
function disable_comments_on_pages($open, $post_id) {
$post = get_post($post_id);
if ($post->post_type == 'page') {
return false; // Inaktivera kommentarer på sidor
}
return $open; // Behåll standardbeteendet för inlägg
}
add_filter('comments_open', 'disable_comments_on_pages', 10, 2);
Göm kommentarfliken på admin sidan
Om din webbsajt inte har kommentarsfunktion över huvud taget kan du gömma den då överflödiga fliken med följande kod.
function remove_comments_menu() {
remove_menu_page('edit-comments.php'); // Remove Comments from the admin menu
}
add_action('admin_menu', 'remove_comments_menu', 999);Göm nyhetsboxen på admin sidan
Om du inte bryr dig om de senaste WP nyheterna och events så kan du ta bort den boxen från admin sidan med.
function remove_all_dashboard_widgets() {
remove_meta_box('dashboard_primary', 'dashboard', 'side'); // Events and News
}
add_action('wp_dashboard_setup', 'remove_all_dashboard_widgets');Vart placerar man dessa kodsnuttar?
För att lägga till de kodsnuttar vi delar i den här guiden i din WordPress-webbplats, finns det flera alternativ beroende på dina preferenser och vilken typ av anpassningar du gör. Här är några vanliga metoder för att införa koden i functions.php och andra filhanteringsalternativ:
1. Direkt i functions.php
Det vanligaste sättet att lägga till anpassad kod är att redigera functions.php-filen som finns i ditt aktiva tema. Detta gör att koden körs direkt från temat och påverkar funktionaliteten på din webbplats.
Så här gör du:
- Gå till Utseende > Temaredigerare i WordPress adminpanel.
- Välj functions.php från filträdet på höger sida.
- Kopiera och klistra in den kodsnutt du vill använda längst ner i filen.
- Spara ändringarna.
Viktigt: Var försiktig när du redigerar denna fil, eftersom felaktig kod kan ta ner hela din webbplats (som vi nämnt tidigare). Kom ihåg att alltid skapa en säkerhetskopia först!
2. Använda ett child theme
För att undvika att dina ändringar försvinner när temat uppdateras, rekommenderas det att använda ett child theme. Detta skapar ett separat tema som ärver funktionaliteten från ditt huvudtema, men där du kan göra anpassningar utan att påverka huvudtemat.
Så här skapar du ett child theme:
- Skapa en mapp för ditt child theme i wp-content/themes/.
- Skapa en fil som heter
style.cssoch en fil som heterfunctions.php. - I
style.css, lägg till grundläggande information om ditt child theme. - I
functions.php, användwp_enqueue_scriptsför att inkludera föräldratemats CSS. - Lägg till de kodsnuttar du vill anpassa under child theme:s functions.php.
Detta säkerställer att dina ändringar inte förloras vid temauppdateringar.
3. Använda ett anpassat plugin
Om du inte vill röra temat eller vill hålla alla ändringar centralt på ett ställe, kan du skapa ett eget anpassat plugin. Detta gör att din kod förblir intakt även om du byter tema.
Så här gör du:
- Skapa en mapp i wp-content/plugins/ och ge den ett relevant namn (t.ex. ”custom-functions”).
- Skapa en fil som heter
custom-functions.phpinuti den mappen. - Lägg till följande kod högst upp i filen för att definiera pluginet:
<?php
/*
Plugin Name: Custom Functions
Description: Anpassade funktioner för min WordPress-webbplats
Version: 1.0
Author: Ditt namn
*/- Klistra in de kodsnuttar du vill använda under denna definition.
- Gå till Plugins > Installerade plugins i WordPress adminpanel och aktivera ditt plugin.
4. Använda ett code snippets-plugin
För de som inte är bekväma med att redigera koden direkt, finns det plugins som gör det enklare att hantera kodsnuttar. Ett populärt plugin för detta ändamål är Code Snippets.
Så här gör du:
- Installera och aktivera Code Snippets-pluginet via Plugins > Lägg till nytt.
- När pluginet är aktiverat, gå till Snippets > Lägg till nytt.
- Klistra in din kod i det medföljande fönstret.
- Klicka på Spara och aktivera.
Med detta tillvägagångssätt kan du enkelt aktivera eller inaktivera olika funktioner utan att röra functions.php-filen.
5. Testa i en staging-miljö
Oavsett vilken metod du väljer, är det alltid en god idé att testa din kod på en staging-sajt eller lokal utvecklingsmiljö innan du implementerar den på din live-webbplats. På så sätt kan du undvika att orsaka några problem som kan påverka användarupplevelsen eller webbplatsens funktionalitet.
Genom att noggrant välja var du lägger in dina kodsnuttar, kan du effektivt anpassa din WordPress-webbplats utan att ta onödiga risker.




0 kommentarer