Easy Retweet WordPress plugin v3.1 Released

As I promised in my year end review post, I have started working on my WordPress plugins. My Easy Retweet WordPress plugin badly needed an update to fix a couple of warnings and I just released v3.1 of the plugin with a couple of fixes and some new features.

About Easy Retweet WordPress plugin

Easy Retweet WordPress Plugin that allows you to easily add Twitter tweet buttons to your WordPress posts.

You can choose to add these buttons using any one of the following ways

  • Automatic way – Just configure the button in the settings screen
  • Using shortcodes
  • Using template functions

You can also enable Google Analytics tracking for the links that are generated by buttons created by this plugin.

Continue reading »

Posted in WordPress | Tagged , , , | Leave a comment

Creating custom tables with correct Character Set and Collation in WordPress

Sometime ago I wrote a blog post about how to properly create custom tables in WordPress that are also compatible with WordPress Multisite.

One thing that I didn’t mention in that article is setting the correct character set and collation for those custom tables.

What are character set and collation?

From MySQL docs:

A character set is a set of symbols and encodings. A collation is a set of rules for comparing characters in a character set.

You will be specifying the character set and collation as part of the CREATE TABLE sql query.

What values should be used for character set and collation?

WordPress has a complex logic to figure out the correct character set and collation for each instance and provides a way to override them in wp-config.php file.

WordPress also does a lot of security checks and rejects text-based on the character set and collation of the tables. So if you are creating custom tables in WordPress then instead of hard coding the character set and collation (or leaving it blank) you should use the one that WordPress had determined.

You can use the get_charset_collate() function in wpdb class to get this value. Append the value returned by this function at the end of your CREATE TABLE sql.

Posted in WordPress | Tagged , | Leave a comment

Looking back at 2015

2015 just ended (is it already a month?) and like the last 7 years here is my year-end review post and plans for 2016. I generally publish them in the first week of January itself, but this year started as a very busy year and this post got pushed back by a month.

Personal Highlights

2015 was a special year for me from my career perspective since I worked the entire year from home. Towards the end of 2014, I joined 10up which enabled me to work from home and this work-place freedom has also helped me to move back to Chennai, my hometown after being in Bangalore for about 6 years.

Working from home has enabled me to spend more time with my family, especially with my 2-year-old son and I am very glad that I choose to work with 10up.

Continue reading »

Posted in Random/Personal | Tagged , , | 6 Comments

My contributions to WordPress 4.4

As most of you might have known, WordPress 4.4 just got released. It has a lot of cool new features like responsive images, REST API, Term Meta etc. Brian Krogsgard has a nice and comprehensive writeup about the new features and read it if you want to get more information about these new features.

Another important aspect of WordPress 4.4 release is that it had 471 contributors, the highest so far. I am happy to say that I am one of those 471 people and this is the second time I got props for a WordPress release. The previous one was for WordPress 4.3 which was released in August this year.

In this post I am going to briefly talk about the tickets that I worked on for WordPress 4.4.

Human readable data size constants

The first ticket that I contributed a patch was 22405. My patch introduced constants for common data sizes, so that you can use human readable constants like KB_IN_BYTES instead of hard-coded numbers like 1024 * 1024.

The following are the new constants that got added.

  • KB_IN_BYTES
  • MB_IN_BYTES
  • GB_IN_BYTES
  • TB_IN_BYTES

In addition to adding these constants, I also went over WordPress core codebase and replaced hard-coded numbers with the above constants.

Change password reset email subject based on user information

WordPress already provides the retrieve_password_title filter that allows you to change the subject of the “password reset” emails. But the problem with that filter is that it doesn’t pass user information. So if you wanted to change the email subject based on user information then it was not possible till now.

I have added both user_login and user_data parameters to the retrieve_password_title filter and now this allows you to change the email subject based on user information. This was done as part of ticket 34252

Documentation fixes

In addition to the above tickets I also worked on 34363, which was just a documentation fix.

I am very happy to have played a (small) part in the release of WordPress 4.4. If you are interested in contributing to WordPress then checkout the contributor handbook.

Posted in WordPress | Tagged , | 2 Comments

Goodbye Bangalore, Hello again Chennai

After being in Bangalore for about six years, I have finally moved back to Chennai, my hometown, this past weekend.

Continue reading »

Posted in Random/Personal | Tagged , , | Leave a comment

Thank you, Alex King

It is with great sadness that I came to know that Alex King one of the original WordPress developers has passed away last night.

Even though he doesn’t know me personally, he was one of my major inspirations and a major reason I started working on WordPress. He was also the reason I wrote my first every WordPress plugin back in 2008.

Continue reading »

Posted in Random/Personal | Tagged , , | 1 Comment

Unit Testing for WordPress

I am in Pune attending WordCamp Pune 2015. It’s been very exciting so far and finally I had chance to meet lot of people in person whom I am have been in contact online for more than half a decade.

My talk about Unit testing in WordPress

I have recently added Unit testing as part of my development workflow and it has helped me a lot as a developer and has even changed the way I think about code. It also has helped me a couple of times to catch bugs early that had the potential to spoil my weekend if it went to production 🙂

I gave a talk about how you can also use Unit testing to get peaceful weekends.

At the beginning of the talk I talked about the basic concepts in Unit testing and you can do it for plain PHP code. After that I moved on to show how the same concepts can be applied for WordPress code using frameworks like wp_mocks.

Continue reading »

Posted in Events/Conferences, WordPress | Tagged , , | Leave a comment

PHP Unit testing at Drupal Camp 2015

I just gave a talk today about Unit testing PHP code using PHPUnit in Drupal Camp 2015.

I have recently added Unit testing as part of my development workflow and it has helped me a lot as a developer and has even changed the way I think about code.

In this talk I talked about how to get started doing Unit testing in PHP and about some of the tips that I learned as I started doing Unit testing.

Continue reading »

Posted in Events/Conferences | Tagged , , | 3 Comments

Creating single select WordPress taxonomies

As most of you would have already know, WordPress by default provides two built-in taxonomies – Categories and Tags. If you need to create a new association, then it is also very easy to create custom taxonomies in WordPress.

But one of the major limitations while creating custom taxonomies in WordPress is that you can’t make them as “single select”. By “single select” I mean the ability to restrict only one term to be selected for a post.

Following in one example where you might need this ability. Let’s say you are storing movie information in a custom post type and you need to store the PG rating for the movie in a custom taxonomy. Each movie will have only one rating and you should restrict that only one rating term is stored for a movie.

Recently I faced a similar scenario and this post talks about how I solved it.

Continue reading »

Posted in WordPress | Tagged , | 6 Comments

Unit Testing PHP using PHPUnit

I spoke about doing Unit testing in PHP using PHPUnit at the Bangalore Open source meetup today.

Continue reading »

Posted in Events/Conferences, Web Programming | Tagged , , , | Leave a comment