Solving slowness of php mail() function

If you suddenly noticed that mail() functions works very slowly and causes long page loads, here is quick solution.

By default php mail() functions works via SendMail service which requires having correct hostname at your server.

You can check it by typing hostname

in SSH terminal.

You probably will see something like ubuntu-16gb-nb1-1 or centos-4gb-cl1 etc.

But you must have correct hostname there. Type this command and it will set correct hostname.


After getting correct hostname add newly added one to /etc/hosts.

Open /etc/hosts with

nano /etc/hosts

command and you will see the line like ubuntu-16gb-nb1-1  ubuntu-16gb-nb1-1

Comment or remove that line and add this line instead localhost.localdomain localhost

Save it by clicking CTRL+O and that’s all. Test mail() function again, it will work as fast as rocket.

How to keep social share counts after migrating to SSL

When you migrated your website to SSL protocol (from http to https), you probably noticed that you had lost all your previous share counts. How to keep them?

We can think on different approaches for them.

Main point: Unfortunately it is not possible via social networks APIs themselves. That’s why we need some tricks.

Here is how i solved this problem and retained back to my old posts’ social share counts.

I am using custom embed codes for social share buttons. Here is facebook embed code i am using:

Now we need to apply our trick and to retain old share counts.

Here is the logic:
1. We remember the date we migrated to SSL.
2. We check if current post was published before or after that date.
3. If it is published before that date, we pass Facebook our URL with HTTP version, in order to save old share counts.

That’s all.
I have migrated to SSL at 20th May, 2018. That’s why i check if post_date is greater or less than 2018-05-20 06:30:03, if it is less, then i change HTTPS to HTTP.




It is possible to apply same logic to other social network embed codes.

WordPress Search – Redirect plural search terms to singular ones

Today I am sharing quick gist which can redirect plural search terms to the results with singular search terms.
Here is when it can be useful:
Let’s say you have some article/page/product which contains the word “e-book”. But your visitor enters your website and searches for the term “e-books”. By default search algorithm he/she will get “not found” message. Continue reading “WordPress Search – Redirect plural search terms to singular ones”

Random user agents for WordPress Remote Requests

wordpress remote requests

wp_remote_get() and wp_remote_post() functions helps us to fetch data from external source: grabbing websites, getting data from public sources, API’s etc.

Sometimes using default headers causes suspect at external side. Too often requests can cause asking a captcha, or blocking your IP.

To escape from such problems we need to insert real visitor like user agents to our requests. And not only one, but randomly chosen ones.

Here is sample code for WordPress

Continue reading “Random user agents for WordPress Remote Requests”