WordCamp Moscow 2016

I’m Konstantin Kovshenin, a WordPress core contributor, ex-Automattician, public speaker and consultant, enjoying life in the rainy UK. 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

San Diego vs. St Louis

Enjoying our company meetup in San Diego this week, and one of the things on my todo list is baseball, since it’s difficult to find baseball outside of the US, especially in Russia ;) So here’s the proof:

San Diego vs. St Louis. Check! Apparently it wasn’t a very exciting game, but we had a really great time, and the San Diego Padres won.

WordPress Workflow Tips: Using Subversion Externals for Plugins, Themes and Core

I’m pretty sure most of you are familiar with version control, and that it’s best practice to start each new project in version control, and not “add it sometime later.” Version control will help you manage changes to your code, and have revisions which you can easily roll back to. Although my favorite version control software is Git, today we’ll talk about...

WordPress Actions vs. Filters

If you’re still wondering about the difference between WordPress actions and WordPress filters, Michael Fields posted a very cool explanation in this forum thread called Actions vs. Filters. I think it’s the best explanation of actions and filters I have seen so far, well done Michael, and keep up the good work! Let’s pretend that WordPress is a Mexican restaurant and we have...

Don’t Be Shy to Use sprintf with WordPress

Don’t be shy to use the printf and sprintf functions with WordPress. It makes code much easier to read. Take a look at the following examples. echo '<a href="' . get_permalink() . '" class="link">' . get_the_title() . '</a>'; It looks quite dirty and it’s very easy to miss a quote or double-quote. Here’s one that looks a lot cleaner and easier to read: printf( '<a...

High Performance WordPress

A co-worker and friend of mine Iliya Polihronov gave this talk earlier this year at WordCamp San Francisco 2012. He walked through an optimal server configuration for a high-performance WordPress environment, including nginx, php-fpm, APC and memcached. His notes are on SlideShare. I’ve been running an nginx and php-fpm configuration for over a year now, with a VPS from MediaTemple. I tried...

GitHub Projects as Subversion Externals

It’s probably a no-brainer, but this totally blew my brains out. Apparently you can use Subversion with GitHub repositories! So if you’re a fan of Subversion externals, and like to include themes and plugins using svn:externals like this: akismet jetpack You’re gonna love the fact, that if the theme or plugin is not hosted in a Subversion repository, but on GitHub only (such as...

Favicon Support in WordPress Themes

I think that although related to appearance, favicon support should not be part of a WordPress theme. You’ll probably want to take your favicon with you, no matter which theme you use. Conclusion: favicons are plugin territory.
Agree? Disagree? Why?

State of the (WordPress) Themes

In this session, Ryan Imel of WPCandy talks briefly about how WordPress themes have changed over the past several years, including free themes, premium themes, default themes, theme frameworks and of course, theme options! As you might know I’m obsessed with theme options, and I even started a blog about them, which was supposed to showcase both great and “not so great”...

Github’s Asking for my Password

“Why is Github asking me to input my username and password when I try to push changes to a repository I own?” I asked this myself a couple of times before I figured out I had cloned it the wrong way: git clone . As opposed to: git clone git@github.com:kovshenin/publish.git . Where the former will use the HTTP protocol, and thus require basic authentication (username and password), and...

Redesigned

I don’t often work on designs. In fact, until today, this blog had only three different themes. The first one was a blue-ish theme from the .org repo, the second one was made by me (my worst first ever WordPress theme), and had an opening <? php tag on the top left. The third one was one I temporarily called Publish, which you see in the screenshot on the left. Today’s...