Andreas Karlsson

/

Om webbutveckling

Magento / WordPress / CodeIgniter / jQuery / Prototype /

Jag heter Andreas Karlsson och jobbar som webbutvecklare på Karlsson & Lord. Du når mig enklast genom andreas.karlsson@indiebytes.se eller 073-512 78 09.

qTranslate slug bug

Under de senaste veckorna har jag från och till arbetat med ett spännande kundprojekt som bygger på WordPress. En av de specifikationer som angavs för projektet var att sajten ska vara flerspråkig. Efter lite efterforskningar visade det sig att tillägget qTranslate med största sannolikhet var vad vi behövde. Implementeringen var dock inte helt smärtfri…

Det första problemet vi stötte på var att de två tilläggen qTranslate och More Fields inte lekte särskilt bra tillsammans. Något som kanske kan ligga till grund för ett framtida inlägg.

Det andra problemet, som jag valt att kalla för the qTranslate slug bug, innebar att permanentlänkarna skapades på formen http://www.exempel.se/min-sidamy-page. Min första tanke var att ge mig in i källkoden för qTranslate och hitta en lösning där, men det skulle i sådana fall innebära att det hela måste göras om i det fall det kommer en uppdatering på tillägget som inte innehåller en lösning. Istället valde jag att skriva ett enkelt filter som jag placerade i temats functions.php:

<?php
function qtranslate_slug_filter( $post_name ){
    if ( empty($post_name) || ( $post_name == '') ) {
        if ( isset( $_POST['post_title'] ) ) {
            if(function_exists('qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage'))
                $post_name = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($_POST['post_title']);
            else
                $post_name = $_POST['post_title'];
        } else {
            $post_name = '';
        }
    }
    return $post_name;
}
add_filter("pre_post_name", "qtranslate_slug_filter");
?>

Problemet uppstod med WordPress 2.7.1 och qTranslate 2.3.3, både med och utan andra tillägg aktiverade. Att dömma av Måns Jonassons kommentar på Bloggy verkar det dock inte uppstå för alla – eller?

4 Responses / qTranslate slug bug

Måns Jonasson 17 april 2009 at 13:38

Hej,

jodå, jag har också sett denna bugg nu. Jag har precis implementerat din fix och det löste ju problemet galant, så tack så mycket!

Det enda problemet jag ser nu är när jag ska radera en sida. Då visar javascript-alerten som varnar för radering det ”riktiga” namnet på sidan, vilket ju är väldigt fult och nåt i stil med ”SvensktnamnEnglishname” eller liknande.

/M;

Svara
Barry 24 april 2009 at 16:38

Great solution, thanks!
One thing I noticed is that the slug will be set to the currently ‘active’ language, e.g. via the language menu in the WordPress admin.
It would be great if it could be set to either the default or a selected language.

Svara
Karl 4 juni 2009 at 11:29

Hej Andreas,

tack för tipset om sluggarna, funkar bra. Likt Barry ovan är även jag intresserad av ifall du känner till hur man kan definiera sluggarna efter ett språk som inte är default dock? Vi kör svenska som default, men vill ha sluggarna på engelska..

Ännu bättre vore ju sluggar på olika språk såklart, det kommer väl förhoppningsvis i framtiden. Finns en post på forumet – http://www.qianqin.de/qtranslate/forum/viewtopic.php?f=3&t=384 – men inga nyheter där på ett tag.

karl

Svara

Leave a reply / qTranslate slug bug

*

*