WordPress

Enklare debugging i WordPress

Tänkte ge ett litet tips som kan underlätta det när du utvecklar för WordPress.
Lägg till följande kodsnutt i wp-config.php och så slänger du bara på ?debug=debug som parameter i URLen så kan du utföra enklare debugging framfört allt i skarp miljö.

if ( isset($_GET['debug']) && $_GET['debug'] == 'debug' ) {
	define('WP_DEBUG', true);
}

Kategorier och taggar i WordPress/bloggar?

Nu när jag satt och gjorde om utseendet här på bloggen så satt jag även och gick igenom strukturen på sidor, kategorier och plugin och liknande och började rensa upp.
Men så stannade jag till när jag kom till hur jag skulle göra med kategorierna och taggarna. Jag har inte använt taggar innan och ofta satta posten i fler kategorier.

Jag är lite sugen på att banta ner kategorierna ordentligt som idag är 23 st och typ bara köra:

Webb och stoppa in saker som har med just webben att göra väldigt generell.
Webbutveckling där poster om WordPress, jQuery, PHP och liknande hamnar.
Personligt här stoppar jag in allt som inte har med något av ovanståden att göra och då typ saker som rör företag och mer poster om t ex personliga mål och sådant.

Var inne på om man skulle köra någon till med som en mycket generella som heter Övrigt eller Annat,

Hur gör ni med kategorier och taggar? Finns det något best practice just ur SEO synpunkt?
Ska man se kategorier som mer generella och specificera posterna mer med taggarna?

Dela gärna med dig av dina åsikter och tankar i ämnet.

Bloggen får nytt utseende

Ett av målen i år var att skapa ett nytt utseende för bloggen och här har ni nu resultatet.

Nu föll det väl ut med att var dags att fräscha upp WordPress-kunskaperna efter ha gjort en hel del där WordPress inte har varit inblandat. Så som kvällsprojekt har jag suttit och knackat på ett nytt tema för att testa på lite nya funktioner, funktionalitet, best practises och alternativa sätt att lösa saker på.

För första gången ger jag mig på att presentera posterna på olika sätt med det inbyggda stödet av Post Formats som gör det enkelt säga vad för sorts innehåll i posten, precis som Tumblr.
Detta har jag valt att visualisera med hjälp av ikoner till vänster om posten och så presenterar jag innehållet lite olika beroende på posttyp. Här använder vi oss av ikon-fontsetet Font Awesome.

Temat som jag kallar Olingo har även responsiv design och här har jag valt att Skeleton som är ett CSS ramverk som grunden till detta.

Jag funderar även på att släppa temat fritt för andra att ladda ner och använda. Är det något man ska tänka på eller ska ha med sig om man skulle göra detta? Någon som har någon erfarenhet?

(Screenshotet är med för att man ska kunna gå tillbaka och kolla på hur det såg inte bara läsa om det om jag skulle byta tema igen.)

Så tar du bort hover texten på bilder i WordPress

Kan ni som jag kan störa er på att en design kan förstöras av att det kommer upp ”tool-tip” på bilder när man hovrar dom? Det är för att det finns ett titel attribut satt på bilden och det görs per automatik av WordPress.

Om ni vill bli av med detta störande element så har jag knåpat ihop denna lilla kodsnutten som byter ut titel attribut till alt-taggen om denna är tom och inte satt.

// Add in functions.php

// Replace the title attribute to alt attribute on images if the alt isn't set
add_filter('get_image_tag','my_image_tag',10,4);
function my_image_tag($html, $id , $alt, $title){
    if($alt == '') {
        $html = str_replace('alt=""','alt="'.$title.'"',$html);
        $html = preg_replace('|title="[^"]*"|U', '', $html);
    }
    return $html;
}

Jag gör inte som jag lär här på bloggen och har inte implementerat det på denna sidan, men denna är sidan är heller inget designfenomen :)

Exkludera automatiskt featured image från galleri i WordPress

Om ni vill använda er av WordPress inbyggda galleri och vill utelämna feature image/thumbnail per automatik så är denna kodsnutten en goding.

// Add in functions.php
function exclude_thumbnail_from_gallery($null, $attr) {
    if (!$thumbnail_ID = get_post_thumbnail_id())
        return $null; // no point carrying on if no thumbnail ID

    // temporarily remove the filter, otherwise endless loop!
    remove_filter('post_gallery', 'exclude_thumbnail_from_gallery');

    // pop in our excluded thumbnail
    if (!isset($attr['exclude']) || empty($attr['exclude']))
        $attr['exclude'] = array($thumbnail_ID);
    elseif (is_array($attr['exclude']))
        $attr['exclude'][] = $thumbnail_ID;

    // now manually invoke the shortcode handler
    $gallery = gallery_shortcode($attr);

    // add the filter back
    add_filter('post_gallery', 'exclude_thumbnail_from_gallery', 10, 2);

    // return output to the calling instance of gallery_shortcode()
    return $gallery;
}
add_filter('post_gallery', 'exclude_thumbnail_from_gallery', 10, 2);

Ta bort title-taggen på bilder i WordPress

Ibland kan det var irriterande att man får upp en tooltip när man håller på bilder. Särskilt om man inte har skrivit en bra titel till bilden, men ibland är det bara fult och förstör designen intrycket.

Det är obligatoriskt att fylla i en titel till bilder när man laddar upp nya bilder i WordPress som man ska använda i innehållet. För att då slippa denna tooltipen som kommer fram tack vare title-taggen så har jag modifierat hooken get_image_tag och byter ut title attributet mot alt attributet om man inte har fyllt i detta.

// In functions.php
function replace_title_tag($html, $id , $alt, $title){
    if($alt == '') {
        $html = str_replace('alt=""','alt="'.$title.'"',$html);
        $html = preg_replace('|title="[^"]*"|U', '', $html);
    }
    return $html;
}
add_filter('get_image_tag','replace_title_tag',10,4);

Kanske kan vara till hjälp för andra än bara mig.

Ta bort menyalternativ i admin WordPress

Vi satt idag och skulle ta bort menyalternativ i admingränsnittet i WordPress beroende på vilken roll dom hade.
Det fanns inget eller vi hittade inget bra alternativ som om användaren är ”editor” eller ”subscriber” osv så ska dessa menyalternativen tas bort.
Så vad vi gjorde vi kollade på om användarerollen fick göra en sak som lägga till en nya användare, som bara administrator får göra, om den inte fick göra det så tog vi bort vissa menyalternativ.

Vi ville inte sörla ner admingränssnittet för användare med rollen ”editor” eftersom dessa inte är vana användare.

// Remove admin menu items
add_action( 'admin_init', 'remove_admin_menu_for_editor' );
function remove_admin_menu_for_editor(){
    if(!current_user_can('add_users')) {
        remove_menu_page('tools.php'); // Tools
        remove_menu_page('upload.php'); // Media
        remove_menu_page('edit.php'); // Posts
    }
}

En riktigt bra sida att kolla på när man vill få koll på roller och vad som får göra i WordPress så skulle jag rekommendera WordPress Codex-sida ”Roles and Capabilities”.

Har ni bättre tips på hur man kan lösa det så tar jag gärna emot dom.

EDIT – Tillagt
Har fått förslag på plugin som ska sköta detta på ett smidigt sätt om man inte vill pilla i functions.php själv.
Jag har inte testat alla själv, men att döma av betygen på pluginen så verkar det uppfylla användarens behov på olika sätt.

Testar ni något av plugin får ni gärna kommenterar och lämna en kommentar vad ni tyckte om det/dom.

Lösenordsskydda din WordPressida

Vi har just nu en kund som vill ha sin webbplats lösenordsskyddad då det ska fungerar lite som ett intranät.

Så jag tänkte skriva denna posten som en note till mig själv om hur jag gjorde, men det kanske kan hjälpa någon annan i framtiden.

Du lägger följande kod i functions.php

function password_protected() {
	if ( !is_user_logged_in() )
		auth_redirect();
}

add_action('login_head', 'rsd_link');
add_action('login_head', 'wlwmanifest_link');
add_action('template_redirect', 'password_protected');
add_action('do_feed', 'password_protected');

Vad den gör att att kolla om användaren i inloggad om den inte är det så ombedes man att logga in och när detta är gjort så får du full tillgång till sidan.

Om du skulle använda detta kan du lägga väl ändra så att sidan inte indexeras av sökmotorer. Det gör du under Settings -> Privacy.

Det kan också vara smart checka ur ”Attempt to notify blogs linked to from article”. Då det inte fyller någon funktion när sidan är ”stängd” och bara slöar ner postningen.

Du kan ju bygga vidare på detta att alla användare måste registrera sig för att se innehållet, men då blir det inte så slutet.
Det gör du genom att checka i ”Anyone can register” under Settings -> General.

Ta bort uppdaterings notifieringen i WordPress

Efter att levererat fleratal webbplatser genom WordPress så är det många som har hört av sig om att det finns uppdatering tillgängliga. I ett fall var kunden i fråga så pass duktig så att dom uppdaterade själva och ett viktigt plugin slutade fungera.

Så jag tänkte dela med av en enklare kodsnutt som du lägger till i functions.php i din tema-mapp om du vill få bort uppdaterings notifieringen i WordPress admin.

// Remove update notification in admin
add_filter( 'pre_site_transient_update_core', create_function( '$a', "return null;" ) );