Knowledgebase : WordPress

In case you WordPress admin and/or login pages got locked-in and the issue is not with plugins, double-check if if your domain is not using CloudFlare as proxy.

As of November 2016 CloudFlare changed its IPs. So, either exclude your admin/login pages from CloudFlare or add new CloudFlare IPs to your .htaccess


allow from
allow from
allow from
allow from
allow from
allow from
allow from
allow from
allow from
allow from
allow from
allow from
allow from
allow from

allow from 2400:cb00::/32
allow from 2405:8100::/32
allow from 2405:b500::/32
allow from 2606:4700::/32
allow from 2803:f800::/32
allow from 2c0f:f248::/32
allow from 2a06:98c0::/29

More in CloudFlare IPs: How do I whitelist CloudFlare's IPs in .htaccess?

How to prepare strings for translations in WordPress

Sample of non-translatable strings:

<div class="content">
<h1>Welcome to my site!</h1>
<p>I hope you'll like it.</p>

Change to:

<div class="content">
<h1><?php _e("Welcome to my site!"); ?></h1>
<p><?php _e("I hope you'll like it."); ?></p>


<?php next_posts_link('Older Entries') ?>


<?php next_posts_link(__('Older Entries')) ?>


Read also:

On multi page forms, the WPML plugin is causing the Previous and Next buttons to say "Array".

Locate the file wp-content/plugins/gravity-forms-multilingual/inc/gravity_forms_multilingual.class.php
Change the following two lines (line 165,166):

$form['fields'][$id]['nextButton']['text'] = icl_t('gravity_form', $form['id'] . '_field-' . $field['id'] . '-nextButton', $field['nextButton']);
$form['fields'][$id]['previousButton']['text'] = icl_t('gravity_form', $form['id'] . '_field-' . $field['id'] . '-previousButton', $field['previousButton']);


$form['fields'][$id]['nextButton']['text'] = icl_t('gravity_form', $form['id'] . '_field-' . $field['id'] . '-nextButton', $field['nextButton']['text']);
$form['fields'][$id]['previousButton']['text'] = icl_t('gravity_form', $form['id'] . '_field-' . $field['id'] . '-previousButton', $field['previousButton']['text']);

Solution documented here

NextGEN Gallery is a full integrated Image Gallery plugin for WordPress with dozens of options and features.

When writing a page/post, you can use the follow tags:

For a slideshow : [slideshow id=x w=width h=height]
Example :

For a album : [album id=x template=extend] or [album id=x template=compact]
Example :

For a gallery : [nggallery id=x]
Example :

For a single picture : [singlepic id=x w=width h=height mode=web20|watermark float=left|right]
Example :

For a image browser : [imagebrowser id=x]
Example :

To show image sorted by tags : [nggtags gallery=mytag,wordpress,... ]
Example :

To show tag albums : [nggtags album=mytag,wordpress,... ]
Example :

To show random mages : [random max=x ]

To show the most recent added mages : [recent max=x ]


A new tag since version 0.60

NextGEN Monoslideshow is a addon plugin for NextGEN Gallery plugin and Monoslideshow flash slideshow.

To get NextGEN Gallery

To purchase monislideshow (commercial)

To get NextGEN Monoslideshow (free)

WebCTO Tested the following FAQ plugins:


WebCTO recommends 


Shortcode for Tribulant WordPress FAQ Plugin:

Groups List – this will display all the FAQ groups


All Questions – display a list of all your questions

[wpfaqs order="DESC" orderby="modified"]

Search Box – a search box will be added on the post/page you insert this shortcode into

[wpfaqsearch menu=1 group_id=X]

Ask Box – an ask box will be added to the post/page you insert this into

[wpfaqask group_id=X]


Read more: 


Managing tables in WordPress is not an easy task.

Try TinyMCE Advanced plugin and stop wasting time coding tables.

Enables the advanced features of TinyMCE, the WordPress WYSIWYG editor.

Connection lost error in WP admin usually is caused by the heartbeat ajax usage.

An article on fixing that
WordPress Heartbeat and heavy admin-ajax.php usage

Some useful WordPress plugins that may help you:



Managed by WebCTO