Snabba upp bloaten i WP e-commerce

WP E-commerce till WordPress är en stor jätte med uråldrig kod och bloatad som bara den (i dess nuvarande version, 3.7.8, i alla fall. I den senaste 3.8 betan fungerande inte checkout tillfredställande). Efter en installation så känner man ibland servern, webbläsaren och hela kedjan verkligen kämpa för att få hem och generera alla de filer som behövs och vill laddas in. Laddningstiderna blir helt enkelt bedrövliga.

Fear not, det finns lätt fix för det hela. Tänkte ta upp de enklare delarna som kan göras ganska snabbt i två ganska lång steg.

Läs hela inlägget →

Relaterade poster i WordPress utan att förstöra kommentarerna

relaterade poster Relaterade poster i Wordpress utan att förstöra kommentarerna

Ett par timmar har gått åt till att få igång en egen relaterade poster funktion till WordPress. Själva scriptet är inte ett dugg konstigt utan kan hittas lite överallt även om jag ville sätta en egen twist på det hela.

Målet var att skapa en funktion som visar bilder samt titeln på inlägget istället för en vanlig tråkig lista. Koden jag använde (utan CSS) blev till slut följande.

[code language="php"]
$tags = wp_get_post_tags($post->ID);
if ($tags) {
$tag_ids = array();
foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;

$args=array(
'tag__in' => $tag_ids,
'post__not_in' => array($post->ID),
'showposts'=>3, // Number of related posts that will be shown.
'caller_get_posts'=>1
);
$my_query = new wp_query($args);
if( $my_query->have_posts() ) {
echo '<div class="related-posts"><h3>Möjligen relaterat innehåll</h3><ul>';
while ($my_query->have_posts()) {
$my_query->the_post();
?>
<li>
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>">
<img src="<?php echo get_bloginfo('template_url'); ?>/thumb.php?src=<?php echo catch_that_image('default2') ?>&w=150&h=100&zc=0&q=100" alt="<?php the_title(); ?>"/>
<span><?php the_title(); ?></span></a>
</li>
<?php
}
echo '</ul></div>';
}
}

Jag använder helt enkelt den klassiska funktionen catch_that_image(), med en lite twist för att få olika storlekar på defaultbilden, och thumb.php för att visa bilden och sen är resten som vanligt.

Problemet som visade sig var att även att wp_query() kallades med new, vilket i min bok kallas för en ny instans av objektet, så sattes alla kommentarsvariabler till den senaste relaterade posten med kommentarer. Detta är en sidoeffekt som direkt inte är önskvärd.

Lösningen är väldigt enkel: spara variabler och återanvänd dem. Innan jag börjar min nya loop så sparar jag ner ett par variabler från den gamla loopen.

[code language="php"]
$old_comment = $comments; $old_id = $id; $old_post = $post; $old_withcomments = $withcomments;

Och efter loopen återställer jag helt enkelt värdena som de var innan.

[code language="php"]
$comments = $old_comment; $id = $old_id; $post = $old_post; $old_widthcomments = $withcomments;

Nu får vi fram exakt den effekten som önskades från början, allt som krävs är lite CSS-magi. Resultatet kan du se under detta inlägget.

Smidigaste sättet eller är jag fel ute?

Så migrerade jag till WordPress

Jag lovade igår att förtälja historien om min migration till WordPress från mitt egna CMS och eftersom jag är en man vid mina ord, så får jag göra det också.

wp history Så migrerade jag till Wordpress

Lite bakgrundsfakta

Mitt egna blogg-system kom från början ifrån resultatet av en kurs i webbprogrammering för över 2 år sedan. När alla andra gjorde ett forum ville jag ha något användbart – dvs ett blogg-system.

Eftersom det är så gammalt utan att jag direkt uppdaterat koden mot mina nyförvärvade kunskaper så hamnade jag i en situation där det blev ohållbart. Jag bestämde mig, då jag inte har tid att koda om allt på grund av andra projekt/skola, för att använda plattformen alla prisar – WordPress.

Migrationen

Två saker ville jag behålla, designen och min inlägg. Självklart började jag med designbiten. Från början prövade jag två teman som skulle vara bra att utgå ifrån – nämligen Sandbox och Tarski, men ingen av dem var vad jag skulle kalla ett bra basic-tema att utgå ifrån. Frågade då på bloggy om ett bra tema och blev pekad till Starkest vilket är ett, nu i efterhand, sjukt bra tema utan containers och CSS-regler att sätta sig in i.

Designen tog nu fart och det dröjde inte allt för många timmar innan jag i praktiken hade det mesta uppe. Nu var det då dags för plugins och andra WP-hacks, med hjälp utav Plugin Manager gick installationerna smidigare än jag kunde ana.

Några av dem som används:

Eftersom jag körde ett helt egen-komponerat system innan så fick jag tyvärr migrera varje artikel jag skrivit för hand, ta bort bbCode och formatera om dem. 82 stycken blev där 60 eftersom en vårstädning om vad jag skrivit var väl på sin plats.

Uppladdning från localhost till domän

Till slut blev det dags att gå live med installationen. Visste sedan tidigare att Andreas Karman hade en artikel om ämnet så den följde jag till punkt och pricka. Inte helt utan problem måste jag dock säga då mina permalänkar vägrade fungera. Lösningen hittades genom att testa olika saker och var den enkla grejen att gå in på Settings > Permalinks och där trycka på Save Changes utan någon egentlig ändring av hur länkarna skulle se ut.

Skillnaden mot förra systemet med permalänkar fixades med en RewriteRule ^/article/(.*)$ /$1 [R=301,L] då förhoppningsvis de flesta gamla länkar kommer fungera likadant.

Det tog sammanlagt två dagar från dess att jag aldrig arbetat i WordPress tills dess att jag har en ganska bra förståelse för systemet, dvs med enkelhet navigera, editera och göra det jag vill med koden utan problem, och en live version, inte helt olik den förra, var uppe på domänen. Min förutsägelse från början låg på en vecka drygt innan jag skulle kunna använda systemet, tji fick jag.