Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Slå ihop Wordpress bloggar är inte helt lätt | jimiwikman.se

    Slå ihop Wordpress bloggar är inte helt lätt

    Posted , 138 views, 0 comments

    Igår påbörjade jag arbetet med att slå ihop databaserna för Mortfiles.se inför Mortfiles NX projektets början och det gick bra till slut, men inte helt utan problem kan man säga.

     

    Att slå ihop databaserna var i sig ganska enkelt, men när jag sedan skulle dela användardata mellan databaserna...ja då blev det lite problematiskt, trots att jag i första skedet bara skulle hantera en användare! Det är två databaser som innehåller olika data om medlemmar: users och usermeta.  I tabellen usermeta finns information om varje medlem utöver login och lösenord, vilket då inkluderar permissions för olika saker, inklusive administrationsrättigheter. Etersom jag byter prefix på databaserna för att passa nya databas schemat så måste det göras lite ändringar i usermeta så det spegalr rätt databas.

     

    Så långt var allt ok, men det hjälpte inte utan jag fick samma elaka "du har inte rättigheter...." när jag försökte logga in, vilket ledde till en jakt på att hitta svaret på det mysteriet. Svaret var mycket enklare än man kan tro för det var en rad i wp_options tabellen som styrde just dom rättigheterna och återigen var det prefixet som spökade. Efter att ha ändrat det till nya prefixet fungerade allt som det skulle igen.

     

    Så, hur gör man då för att slå ihop två Wordpress databaser så dom delar inloggning? Det är faktiskt inte så svårt som det låter och så här gjorde jag:

    1. Jag skapade först en helt ny databas genom att installera en ny Wordpress blogg med prefixed NCore_. Det ska bli grunden i den nya databasen.
    2. Sedan valde jag en annan databas som jag först exporterade och sedan importerade i den första med hjälp av PHPMyAdmin. Jag bytte prefix på dom importerade databaserna från wp_ till driftinfo_ eftersom databasen jag importerade var just driftinformationsdatabasen.
    3. Driftinfo_user och driftinfo_usermeta raderade jag eftersom dom inte ska användas.
    4. I wp-config.php för driftinfo la jag till hänvisningarna till vart dom nya user och usermeta finns.  För att jag snabbt ska kunna göra ändringar la jag till en PHP variabel istället för att hårdkoda in databas namnen, men det är inte nödvändigt:

      $custom_userdata = "NCore_";

      define('CUSTOM_USER_TABLE', $custom_userdata.'users');

      define('CUSTOM_USER_META_TABLE', $custom_userdata.'usermeta');


       

    5. Sedan måste vi lägga till administrationsrättigheter till den nya databasen och det gör vi genom att lägga till wp_capabilities och wp_userlevel  i usermeta. Jag kopierade helt enkelt dom rader som fanns för den första databasen och bytte ut prefixet från NCore_ till driftinfo_
    6. Nu behöver vi bara ändra i driftinfo_options databasen där det fortfarande ligger kvar det gamla prefixet i wp_user_roles. Vi ändrar det till driftinfo_user_roles och presto! Allt är klart ;)

    Det här är inte en optimal lösning om du har två databaser med många medlemmar i båda för då blir det konflikter med användar ID och en mardröm med usermeta, men ska du slå ihop två nya databaser så fungerar det fint. Du kan även låta usermeta ligga kvar med det gamla prefixet, vilket då betyder att du får ett login men varje medlem kan ha olika usermeta för varje blogg.

     

    Härnäst ska jag försöka få cookies satta till samma domän så att det blir en inloggning bara och så ska du vara inloggad på alla sidor automatiskt. Vi får se hur det går :)

     

    Har du tips på sätt att slå ihop databaser som är annorlunda än min variant, eller goda råd angående sammanslagningar så skriv gärna en rad!

    User Feedback

    Recommended Comments

    There are no comments to display.



    Guest
    Add a comment...

    ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.


  • Who's Online   0 Members, 0 Anonymous, 18 Guests (See full list)

    There are no registered users currently online

×
×
  • Create New...