WordCamp Moscow 2016

I’m Konstantin Kovshenin, a WordPress core contributor, ex-Automattician, public speaker and consultant, enjoying life in Moscow. I blog about tech, WordPress and DevOps.

I do code review, training and consulting on WordPress performance, scaling and security. Schedule a call if you’re interested.

Subscribe to my newsletter and follow me on Twitter.

Recent Blog Posts

On $matches in preg_match functions

I’ve seen many people define an empty $matches variable before using it in preg_match and preg_match_all functions in PHP. I’ve done it myself, and I was quite surprised to learn that you don’t really have to — even if there’s no match, you will not get an undefined variable notice.

Maintaining a Local WordPress Subversion Repository

When working with WordPress core, you often have to go back and forth through commits, scroll or search through revision logs, switch between tags and branches and so on. This can be annoying with a slow Internet connection and impossible without a connection at all, but what if you’re working on a core patch on a plane or a submarine?

Subversion 1.7 on Ubuntu 12.04

Ubuntu’s default packages ship Subversion 1.6 with the 12.04 distribution. This is annoying if you want to use the newer Subversion 1.7, without upgrading your OS, and especially if you’re dealing with newer working copies: svn: The path '.' appears to be part of a Subversion 1.7 or greater working copy. Please upgrade your Subversion client to use this working copy. Turns out...

The Great Firewall of Russia

It’s a shame that the Russian “consumer watchdog” Rospotrebnadzor, the Ministry of Justice, and the Federal Service for Supervision in the Sphere of Telecom, Information Technologies and Mass Communications (or Roskomnadzor) were “smart” enough to block access to over 20 million blogs hosted on WordPress.com because three of them contained suicide, drugs, and...

WordPress Meetup in Moscow

The Moscow WordPress Meetup group is growing, and this weekend we had three sessions and over 30 attendees! We finally seem to have settled with the venue, and started working towards a WordCamp Moscow this year.
Fun fact: next meetup (in March) we will turn one year old.

7 Tips for Better WordPress Theme Development

I gave this talk at WordCamp Norway 2013. It covers several tips and tricks that will make you a better theme developer.

You can follow the slides and the notes/transcript below. If you have any questions or comments, feel free to ping me here or on Twitter, I’m always happy to help :)

Understanding get_template_part

If you’re creating WordPress themes you surely came across the get_template_part function at one point or another. It’s one of those hidden gems inside of WordPress that don’t get the attention they deserve. Let’s change that. The get_template_part function is essentially a PHP include or require, on steroids: It already knows where your theme is located and it will look...

Amazon Kindle Fire

Today I turned 24 and my wife got me a Kindle Fire — something I wanted for ages, primarily for reading, but turns out it’s a great tablet for work and play too. The first thing I did was go to the Amazon App Store to install a couple of free apps, but got quite a disappointing message: your payment method contains a non-US billing address, please use a US credit card, which I...

Speaking at WordCamp Norway 2013

In 2011 I spoke at zero WordCamps. In 2012 I spoke only at WordCamp Sofia. One of my goals for 2013 is to speak at five different WordCamps, and it all starts as early as January with WordCamp Norway. WordCamp Norway is January 26th in Oslo, and I’m really excited since I’ve never been anywhere near Norway. Flight tickets ready and hotel booked, the only thing remaining is the...

Tip: wp_cron() runs during init

Pro tip: wp_cron() runs during the init action at the default priority, i.e. 10. If you’d like things to be available during your cron tasks, make sure you initialize them earlier: the init action at priority 9 and less, or other actions that run before init — beware of these, since other things might not be available at that time. Also, Core Control is a good plugin to test and debug...