19
DEC
09:39

Ibland måste kakan ätas #nyttjobb

Ibland kommer det sådana där lägen där du måste bestämma dig om du vill äta kakan eller ha den kvar. Ett sådant läge kom för mig i somras och efter många om och men, efter sömnlösa nätter och ångestfyllda skrik mot fullmånen så bestämde jag mig.

Erhm. Ja. Typ.

Från och med januari så hittar ni mig som CTO på Tech Troopers, ett nystartat bolag med målet att hjälpa människor med deras hemelektronik.

Jag har spenderat senaste 14 månaderna på Odd Alice där jag har fått hjälpa till att har bygga många fina saker. Men från och med januari så byter jag kontor (not really) och e-postadress för att fortsätta med Tech Troopers på heltid.

Jag vill tacka mina fina medarbetare på OA för ett fint år och jag hoppas att vi får fortsätta göra bra saker tillsammans. Även i detta nya format.

tt_horizontal
Posted by David
25
SEP
15:10

Min sista #redbullonsdag på Ztorm

Idag är det min sista #redbullonsdagZtorm för efter 8,5 år så ska jag nu byta jobb. Från och med 1:a Oktober så är jag heltid på Odd Alice med TDH & Co.

Tack för den här tiden alla som har gjort Ztorm och mitt arbete där möjligt. Ingen nämnd, ingen glömd. Ztorm blev min första “riktiga” anställning, Manpower och jobba fabrik räknas inte riktigt, och det har varit några riktigt roliga år. Men nu är det dags att gå vidare… Inte för att så mycket kommer att förändras. Jag sitter kvar på mitt lilla hemmakontor och jag “jobbar med sådant där Internet”. Men några nya utmaningar kommer det nog att bli.

To infinity and beyond!

Posted by David
Tags: , , , , ,
4
OCT
11:11

WP: get_author_posts_url() in MU with sub-directories

Just a little tip here. We did a project with a multi site setup with sub directories. There was a photo blog on blogs.example.com/photo/, a food blog on blogs.example.com/food/ and the main/default site gets blogs.example.com/blog/ by default by WordPress. On the main site we wanted a list of the latest posts across the network. A couple of UNION SELECTs solved the data fetching. A loop with switch_to_blog() solved The Loop. But we had a problem with get_author_posts_url(). For some reason it added the default /blog/ sub-directory to all blogs. So instead of blogs.example.com/photo/author/feedmeastraycat/ we got blogs.example.com/blog/photo/author/feedmeastraycat/.

I guess the “problem” here is that switch_to_blog() doesn’t change the WP_Rewrite object. So when get_author_posts_url() calls $wp_rewrite->get_author_permastruct() it get’s the permalink for the main site blog plus the permalink for the selected blog.

Not sure if this is a bug. Or just a way that it have to work. Either way, I created a filter for author_link which solved the problem for us.

function my_author_link($link, $author_id, $author_nicename) {
	global $blog_id;
	if (is_main_site($blog_id)) {
		return $link;
	}
	else {
		return str_replace("/blog/author/", "/author/", $link);
	}
}
add_filter('author_link', 'my_author_link', 11, 3);

What we do here is getting the global $blog_id variable which contains the current blog’s id number. We run it through is_main_site() to see if this is for example the photo blog, or the food blog, or if it is the main site. If isn’t the main site, we do a string replace on /blog/author/ to just be /author/. But if it’s any other site we return the $link parameter as it is, unchanged.

Disclaimer: Not sure if the problem exists if you don’t have permalink structure. Haven’t even tested. :)

Posted by David
24
SEP
18:10

WordPress snippets

I’ve added a page here for some WordPress snippets I’ve created recently. Just for fun. They are small pieces of code where I doesn’t really feel the need to put them into plugins. The plugins feature in WordPress is great. Obviously. But sometimes when you do themes it’s nice to skip the initial fifteen odd plugins that all do one or two, small things. I’ve added the code to my Github repository. I’m a Github newbie. But it’s a lot easier to keep the code there, and make sure it’s updated, instead of posting it on the blog. And you can follow me there as well to see when I post updates… ;)

  • WPSettings — a set of classes to create a WordPress settings page for a Theme or a plugin.
  • WPCustomPostTypeArchive — add archive functionality to custom post types.
  • WPGetLatestTweet — a simple lib to get and cache the latest tweet for a username.
Posted by David