Several months ago I wrote the third part of this article which you can find here. Hopefully this is lighter and less boring than the previous one! :D
Most of the plugins I mention in this article are used by me personally. There may also be a few that I don’t use personally but feel that they may help you; in such case I would list them separately in the same article. Note that not every plugin I mention here is used on this blog; I have a few other blogs as well where I use them. ;)
Include plugins
Design plugins
Optimization plugins
SEO plugins
1. Include plugins: The plugins in this category let you insert remote files, or codes, into your blog posts or pages. Here are a few plugins you can try out:
a) Easy JS and CSS support: Ever wanted to have a different color for your blog post title other than the default one provided by your theme? Or maybe you would like to format your posts in a different way that does not make them look "bloggy". Usually this would amount to hardcoding some custom codes into your theme file or the theme’s css files, but unless you are good at it, you will make more mess than help yourself! ;)
Well this is one of the few plugins that would help you with that! Just take a look at my DatingPLR site to understand what I mean! The purple color of the site header was definitely provided by the theme skin, but NOT the purple title color of the posts or pages you see on that site! This I did using the Easy JS and CSS support plugin! Here is how:
i) You download and activate the plugin
ii) Personally I use the semiologic theme. In case of this theme, the color and font style of the blog entries are governed by the CSS class called ".main h1". So I downloaded the free PSPAD editor, created a new CSS file, put this code in the file:
.main h1 {font-size: 18px; font-weight: bold; color: #CC00CC}
Then saved it under a new name, such as, say damndamndamn.css ;) , and uploaded the file to my web server, in the folder called /wp-content/themes/semiologic/css/. Again the css folder path maybe different if you are using a different theme, but at least now you know what to do. :D
Then I clicked to add a new post (this would also work in case of pages). After creating the post as usual, I scrolled down until I saw the "Easy CSS/JSS" tab. In the third box (where you can see the text "CSS include. (insert 1 file pr line, that should be included in the head-tag)") I enter the full URL of my custom CSS file, starting with http://. BAM, now my post title had a new color. :D
Remember that if you don’t like the color purple you can always change the hex color code #CC00CC to something else. You can find a list of HTML color codes here.
This plugin, however, has got a limitation: it does not work with WordPress’s custom post types feature (as of yet). But don’t let that dampen your spirits. Let me introduce another plugin to you that does the same job in a different way, as well as works with custom post types too!
b) Custom CSS and JS: Like I said, it is a good alternative to Easy JS and CSS support, though, in my opinion, a bit trickier to use. Here is how you can use it:
i) Download and activate the plugin
ii) Create and upload your custom style sheet as usual
iii) Click to create a new post. Write up your post as usual, then scroll down to the "Custom Fields" tab. In the first box, type "custom_css" (without quotes), and in the next box, enter the full URL of your custom css stylesheet. then save your post as usual!
You can find more custom field values here. The good thing about this plugin is that unlike Easy JS and CSS Support, it would work on custom post types too!
Remember that you can use either of these plugins to insert remote CSS AND remote JS files into your blog post or page! Pretty cool, huh? Easy JS and CSS Support also lets you insert local CSS and JS codes; I don’t know if Custom CSS and JS allows that!
However, both of these plugins have got a serious limitation – neither of them can help you include remote files into your blog widget area by way of PHP includes! You need another plugin to do that job! :D
Already getting bored? YAY! :D
c) PHP Code Widget: I have already discussed the benefits of using PHP includes here and here. Anyway, I would still repeat some of it just to make this article even MORE boring! ;)
Now, let us say that you have 100 mini-blogs, or maybe vblogs or splogs, whatever! :D Now you want to add a disclosure statement in each of these blogs. Fine, you already know how to do that. Years pass by, and your 100 blogs are making you more and more money as usual. Suddenly you get wind of the fact that your disclosure is not really compliant with the latest FTC rules, so you would now have to update it.
So what do you do now: login to each of your 100 blogs to update the disclosures manually? Nope. That is not the smart way of doing things. With PHP includes, you do the hard work just ONCE, and reap the benefits forever! :)
Let us say that the location of your disclosure file is this:
http://yourdomain.com/disclosure.html
So how do you include this file into all of your blogs? First, download and install the PHP Code Widget.
Now click on "Appearance=>Widgets". Drag a "PHP Code" widget to the widget area! Then click on the widget to open it. In the second box (the larger one), put the following PHP code:
<?php include("http://yourdomain.com/disclosure.html"); ?>
DO NOT check the "Automatically add paragraphs" option! Save and close the widget, then check your blog to see how it looks like!
Pretty neat huh? You only do this ONCE for each of your blogs. Next time you have to update your disclosure file, you update only that disclosure file and the changes would be automatically reflected on ALL of your blogs!
BTW, your host must support allow_url_fopen (see example#3) for this to work! Most decent hosts do!
You can also use this trick to update your optin forms, Adsense™ ads, and so much more – automatically!
However, this plugin has got a serious limitation. :P What if you want to include remote files into individual posts or pages? This plugin just cannot do that (unless I am missing something). Fortunately there is another plugin that can help you: let me introduce you to:
d) Include HTML: I have tested it to work perfectly with WordPress 3.0.3. This plugin can help you insert any remote file into your posts or pages. Here is how you use the plugin:
i) First download and activate the plugin
ii) Now, let us say that you want to include an optin form at the end of each of your posts and pages. The optin form is located on a remote website, also owned by you (you should definitely NOT use these remote file include tricks to embed someone else’s file into your blog, as it might contain malicious code – if not now, then later). Let us say that the URL of your optin form file is:
http://yourdomain.com/optinform.html
To include this file anywhere in your post or page, just add this code where you want the optin form to appear:
[include_HTML: http://yourdomain.com/optinform.html]
Be sure to TURN OFF the visual editor because it is known to mess with codes! You can turn it off by going to your profile page (/wp-admin/profile.php) and checking the "Disable the visual editor when writing" option!
So far so good. However, what if you want to include raw PHP code in your posts or pages? Obviously, this plugin cannot do that. You need to use something else for that purpose, such as-
e) Allow PHP in posts and pages: Any PHP code you want to include in your posts or pages, you just enclose it within the [php] and [/php] shortcode. Note that if you use <p> or <br> tags in your code they would be automatically stripped out by the plugin! Additionally, you must remove any <?php and ?> from the code before enclosing it within the given shortcode, or it may not be parsed properly!
For example, let us say that you want to include posts from a custom post type on a page; say that the custom post type name is xxx_yyy. In this case, you can include the following code in your page in order to display the posts (note that you can display only the last 10 posts with this query, and I don’t know of an alternative):
[php]
query_posts(array(‘post_type’=>’ xxx_yyy ‘));
[/php]
I have not found a plugin which does the above out-of-the-box, which is why I started using this plugin!
On the other hand, if you want to include the last 10 posts from your blog (NOT custom post types, just general posts) you can use the following code instead:
[php]
query_posts(array(‘post_type’=>’ post ‘));
[/php]
Alternatively, you can use the TPG Get Posts plugin (FYI this plugin would not work with custom post types).
I am sure by now you are getting very bored and feeling sleepy! :D
f) Tag Dropdown Widget: What if you want to include your blog’s tags in a dropdown fashion, like the dropdown menu you can see at the top of http://flexiblewriter.com ? You gotta need this plugin! :) You merely activate the plugin, drag the Tag Dropdown Widget to wherever you want, and then configure your options. I have set it to display the tag list alphabetically and in ascending order, but it is up to you how you want to display the tag list! :)
On the other hand, of you want to include tags in a "list" style, you can use the Tag List Widget instead!
You cannot however include tag lists in your pages with the help of these widgets. If you want to do that you can just include this code in the respective page to display your tags in a list format, just like the way I did at http://flexiblewriter.com/sitemap (see the links under the "List of Topics" header; they are all just tags :D ):
[php]
wp_tag_cloud(‘smallest=11&largest=11&format=list’);
[/php]
Provided of course you are using the Allow PHP in posts and pages plugin! :D
You can change the "smallest" and "largest" values to any other numerical values you want! Just remember that "smallest" represents the smallest font size while "largest" represents the largest font size you want for the tag list!
g) List category posts: What if you want to include a list of your blog posts on a page, like I did at http://flexiblewriter.com/articles ? You can do that with this plugin! To do what I did in the example page, all you need is to include this shortcode on any page you want:
[catlist id=X]
Where "X" is your category ID! To get the ID of a particular category, click on "Posts=>Categories", then hover your mouse under the selected category. You would notice something like this:
&taxonomy=category&post_type=post&tag_ID=5
Here, 5 is the ID number of that particular category!
You can find more tags supported by this plugin at this page.
h) WP-Table Reloaded: Seriously, none of the plugins mentioned so far would help you include a table in any of your blog posts or pages. You need WP-Table Reloaded for that! You can see the way I created a table at http://flexiblewriter.com/. You can configure this plugin anyway you like, but since I wanted to keep it all simple and bloat-free, I disabled the "Yes, enable the use of a JavaScript library" option from the "Plugin options" tab. Also, when creating the table itself, I made sure that the following options are UNCHECKED:
-Every second row has an alternating background color.
-Highlight a row by changing its background color while the mouse cursor hovers above it.
-The first row of your table is the table head.
-The last row of your table is the table footer
-The Table Name shall be written the table
-The Table Description shall be written the table.
Whether you want it this way or not is up to you. I also did not like the default table font, so in case you want to style the font you can click on "Plugin options" and add the following CSS code in the "Custom CSS" box:
.wp-table-reloaded-id-1 td {
font-size: 12px;
padding: 5px
}
If your table ID is NOT 1, then you need to replace the 1 in "wp-table-reloaded-id-1‘ with the respective table ID! You can change the "font-size" and "padding" values to whatever you want! You can find more custom css examples at this page!
2. Design plugins: The plugins in this category let you manipulate the design and format of your blog posts and pages. Here are a few plugins you can try out:
a) Hide This Part: What if you want to hide a part of your blog post (like the way I did at http://flexiblewriter.com/mrrebooks ; you can click on the "More" link to read the remaining part of the post; I really have no idea if Google is able to index the "hidden" part of the post or not, not that I care about it :P )? None of the plugins I discussed so far can help you! You need the Hide This Part plugin for that purpose. ;) You simply enclose the part you want to hide within the [hide-this-part] and [/hide-this-part] shortcode! That’s it!
b) WordPress Multi Site Mobile Edition: Do you care about your mobile visitors? Marketing 101 says that every visitor counts! :D The typical mobile user cannot view a webpage bloated with too much JavaScript and CSS styling, and even if s/he could, such pages would load very slowly on the mobile browser, thereby leading to costly mobile bills! To get around this, I use this plugin.
This plugin is really easy to use. Just download and activate it; then also upload the Carrington mobile theme to your /wp-content/themes/ directory but DO NOT activate it! You are done! You can test out your blog in your cell phone, or the Opera Mini emulator (for those who don’t have a cell phone ;) ) – you must have JAVA installed for the emulator to work!
This plugin won’t work on pre-3.0 blogs; for those blogs, you should use the WordPress Mobile Edition plugin instead!
—————-The Boredom Persists!——————— :P
3. Optimization plugins: The plugins in this category let you speed up your blog by minimizing database queries and HTTP requests, thereby minimizing server load too! Here are a few plugins you can try out:
a) DB Cache Reloaded: Forget WP-Super-Cache or W3-Total cache. While these plugins are definitely good at what they do, they don’t really minimize the number of queries made by an average WordPress blog on your database, which is quite high. Just in case you don’t know, these database queries affect the pageload speed more than anything else; on another note, they also put a great load on your server, especially CPU! DB Cache Reloaded caches database queries, thereby minimizing the number of queries made (on an average) by the blog to perform various actions!
Remember that it is just my option that DB Cache Reloaded is better than WP-Super-Cache or for that matter, the other regular cache plugins I have used so far, and I can only tell this because after I installed DB Cache Reloaded my average pageload speed definitely increased (as verified from: http://www.iwebtool.com/speed_test). Again this is purely my opinion, and opinions vary; like, here is someone who thinks differently. And here is an article which puts almost all the popular caching plugins for WordPress into perspective. Ultimately, it is you who needs to decide which caching plugin is best for you!
Just different ways of doing things, ya know! ;)
To manually clear your cache at any time, just click on "Settings=>DB cache Reloaded", scroll down and then click on the "Clear the cache" or "Clear the expired cache" buttons, as you deem fit!
b) JS & CSS Script Optimizer (I am using version 0.1.4): Try to install it on a single blog, and it is a snap! But try installing the same plugin on a multisite blog, and the situation gets trickier! On the other hand, this is one of the few good plugins that works on a multisite setup, even if with a little hard work on your part! But first, what the heck this plugin does for you (or, why should you be bored by reading about this plugin)? :D
Well this plugin basically minifies, optimizes and packs all of your JavaScript and CSS files into as few files as possible. This essentially not only increases the pageload speed of your blog, but also keeps those hackers away who try to hack blogs through the vulnerabilities of a given theme or plugin (if you read the source code of your blog carefully, you would see a majority of the WordPress plugins and themes blatantly announce their version numbers therein, making it really easy for the hacker to exploit the vulnerabilities associated with those versions, if any! I know as a matter of fact – from my 404 logs – that there are many people who regularly use Google™ to check if I use certain plugins or not (they would attach the plugin path with my blog domain to check if the plugin folder exists or not). Till date they have been unsuccessful and only managed to land on my 404 page, but you just never know. ;-)
Anyway, back to boredom… :D
There are a couple of things to remember about this plugin:
i) If you are using the WP lightbox 2 plugin with JS & CSS Script Optimizer, the lightbox popups just won’t appear! I have tried using the "exclude list" of JS & CSS Script Optimizer but to no avail. So, if you are using the WP lightbox 2 plugin, you may want to use a stripped down version of this plugin => WP-Minify. WP-Minify, though not as robust as JS & CSS Script Optimizer, at least plays well with the WP lightbox 2 plugin. :)
If you feel adventurous you can go ahead and try using WP lightbox 2 with JS & CSS Script Optimizer => maybe you would have a different experience, who knows? ;)
ii) Another thing about JS & CSS Script Optimizer is: If you have a multisite blog setup, and are using different themes on each blog, or even different skins of the same theme, the plugin DOES NOT work out-of-the-box. The way it works is: when someone visits one of your blogs it creates the cache for that blog. Fair enough, but if that visitor visits another blog of yours, the plugin, instead of creating a new cache for the second blog, merely overwrites the css of the blog with the css of the old blog’s cache!
So what this means is that: if your first blog has a green theme and the next one has a red theme, when the visitor is going to visit these two blogs, both of them are going to have either green or red themes, depending on the visit sequence. Pretty weird. There is a solution, but it is not a very easy one!
What you need to do is to rename the plugin fodler’s name each time you want to use it for a different blog (on the same multisite platform). In essence, each plugin would work only for one blog!
For example, let us say you have two blogs: tomtom.com and bombom.com. :D For the first blog, you can upload the plugin folder as is and activate it; for the next, you just rename the plugin folder to say, js-css-script-optimizer-bombom, or anything else you want, then upload and activate it. When activating, hover your mouse under the "Activate" link to check the plugin path – thereby making sure that you are not activating one plugin instead of the other! That could be messy! :P
Yes this whole formula sucks indeed but it is the best solution I could come out with, given that I am no programmer. If you have 100 blogs on the multisite setup you are going to see 100 instances of the same plugin. :P This is also the reason why I hardly upgrade the plugin unless absolutely necessary, because each time I wanna upgrade, I have to upgrade multiple instances of the same plugin. :( I even posted about this on the plugin’s support forum but till date there is no word from the author! :|
iii) Yet another thing to note about this plugin is that, just like any other minify plugin, this plugin also requires the cache directory to be CHMOD to 777. It also requires the /uploads/ directory to have 777 permissions. I would say it is a HUGE security risk. To get around this, you can create your own folder anywhere on your website, give it an oddball name, CHMOD it to 777 permissions and then update the plugins settings accordingly!
Just open the js-css-script-optimizer.php file with PSPAD. You can change both the "wp-content/uploads/" and "spacker-cache" to any other oddball name you like. For example, you can have:
else {
self::$upload_path = ABSPATH . ‘wp-content/oddballfoldernamehere/’;
self::$upload_url = site_url(‘/wp-content/oddballfoldernamehere/’);
}
self::$plugin_path = dirname(__FILE__);
self::$cache_directory = self::$upload_path . ‘spacker-cache/’;
self::$cache_url = self::$upload_url . ‘spacker-cache/’;
OR, if you want to harden the security even further, try:
else {
self::$upload_path = ABSPATH . ‘wp-content/oddballfoldernamehere/’;
self::$upload_url = site_url(‘/wp-content/oddballfoldernamehere/’);
}
self::$plugin_path = dirname(__FILE__);
self::$cache_directory = self::$upload_path . ‘oddballfoldername2here/’;
self::$cache_url = self::$upload_url . ‘oddballfoldername2here/’;
Will you be completely safe from hackers? No way, but at least this would minimize hacking to a great extent. Almost every noob hacker expects WordPress users to CHMOD the uploads directory to 777 (because whether or not you use a cache plugin, you are going to have to CHMOD the uploads directory to 777 if you want to upload any kind of media to it; fortunately I prefer uploading the respective media via FTP and then linking to it from my post or page; this way, I don’t have to CHMOD the directory to 777), hardly anyone would be able to guess the significance of the oddball folder name you just created, let alone do try to hack it!
If you want, you can even upload an index.php file into these folders which would redirect users to a page of your choice: either the 404 page, homepage, money page, or anything else you prefer! You can l;earn more about PHP redirects here.
Certainly I have not found a better plugin or I would have stopped using it long ago, given its serious limitations. :D
iv) This plugin plays well with DB Cache Reloaded
v) To manually clear your cache at any time, just click on "Settings=>Script Optimizer", then scroll down and click on the "Save options" button. You should see a message like "Options have been saved! Cache clear.". You don’t have to make any actual change to your plugin settings in order to use that button!
Anyway, I guess you are now desperate to sleep. But I will bore you still! :D
4. SEO plugins: The plugins in this category let you enhance the SEO-capabilities of your blog. These are not strictly SEO plugins, but they do certainly to your blog’s SEO!
a) Redirection: Business model changes, website ownership changes, and naturally the website itself is also subject to certain changes from time to time. We live in an ever-changing world, and the internet changes even faster than the offline world. How could then one expect webpage links to remain the same forever? When you make massive changes to your website, you would inevitably end up with some "bad links" that no longer work.
Whether you rely on SEO or PPC for traffic, are you going to dump all that precious traffic on your site’s 404 page? No way. You can do much better by redirecting the old, invalid links to the new valid ones using the 301 redirect method, as recommended by Google itself. This makes sure that you don’t lose your existing traffic! You can do this the "hard" way, via .htaccess method, or you can do it much more easily with the Redirection plugin (it may not be as versatile as the .htaccess method, but it does the basic job of redirection just fine).
Typically, since I use the SEO Ultimate plugin as well, I use its "404 monitor" module to check for 404 errors and then use the Redirection plugin to redirect them accordingly!
This plugin is not without its quirks, some of which are below:
i) One of its quirks is that sometimes it tends to redirect the "homepage" of your blog to the "About" page. I don’t remember why it does that, as it does not do this with all of my blogs. Maybe at one point that blog had the "About" page as homepage and when I changed it the plugin sensed the change and "felt" that it is "not right". :)
Anyway, to fix this, just click on "Tools=>Redirection", enter your blog’s homepage URL (without "www"), select "URL only" from the next box and "Do nothing" from the third box! This should fix the issue; if not, then check the "Groups=>Modified Posts" tab of the plugin!
ii) The next thing is not exactly a quirk but it is something to be taken care of if you don’t want your pages to slow down or the database size to get unnecessary big. Under "Options=>Expire Logs", enter a numerical value. I have mine set at 5, which means that the log would get cleared every 5 days. If you don’t set this option, then the log would only get bigger and bigger with time, and this would have a major negative impact on your blog’s performance!
b) WP Keyword Link: I don’t actually use this plugin for "affiliate link injection", not as of yet. On another note, no matter what I use it for, I did not really need this plugin because SEO ultimate already offers similar functions in the form of a module called "Deeplink Juggernaut". Problem was that the module’s "target_blank" functionality does not really work, at least it did not work on my blog, and I really wanted those "injected" links to open in new browser windows! So I had to install this plugin.
Personally I feel this plugin is comparatively more versatile than the "Deeplink Juggernaut" module of SEO ultimate anyway! :)
Using this plugin is quite easy. You just enter a keyword you want to match, then the link you want the keyword to link to, and an optional description of the project. First you would want to click on "Options for KeywordLink" tab to customize the main plugin settings. If you do not want the plugin to link to keywords on pages, uncheck the "Keywords does not link on Page" option! If you want the plugin to inject links only in the first 5-6 instances of the keyword in your blog post/page, customize the "Number of Keyword matched" option accordingly by entering "5" in the first box and "6" in the next!
The plugin offers you several choices like:
-No Follow=> Do you want to add a "nofollow" tag to your link? Checking this box would make the link nofollow!
-First Match Only=> Do you want the plugin to inject link only to the first mention of the given keyword within your post? If yes, then select this option.
-New Window=> Check this option if you want the link to open in a new window.
-Ignore case=> If you check this option the plugin would ignore the case of the given keyword, meaning it would inject links to both the uppercase and lower case versions of the keyword!
-Is Affiliate=> No idea what this option would do for me.
-Filter in comments?=> Do you want the plugin to inject links in comments as well? If yes, check this option.
-For zh_CN?=> No idea! Does activating this option enable the plugin to work on Chinese characters too? Maybe! :|
If you don’t want to use the plugin’s "Related Posts" functionality, just click on the "Related Posts" tab, and enter "0" in both the following boxes:
-Number of posts to show
-Minimum match strength
BTW, have you used the Adscaptcha plugin? I have not, but if the plugin indeed works as expected, it sounds like a fun way to make money from spammers! :P
Anyway, even if you learnt nothing from this article, at least you got bored! :P Now, would you please click here to post a nice comment, thanks. :D
To be continued…
[…] rest is here: Huge List of Cool WordPress Plugins-Part 4 Share and […]
[…] This post was mentioned on Twitter by Renee Benzaim. Renee Benzaim said: RT @arindamc Huge List of Cool WordPress Plugins-Part 4 http://bit.ly/idEXVF #html #php […]
Hi Arindam,
I use the w3 total cache plugin. I have tried all the others with no real help. My impressions are around 2 million for my blogs, so I had to make some serious changes to how it was served and stored..
I did find a real good scribd blog the other day that had an advanced tutorial on just this plugin and it is free. I do not own the blog, it belongs to somebody else not affiliated with me at all.
http://www.scribd.com/doc/34170452/W3-Total-Cache-Installation-and-Configuration-Guide
This is better even than the plugin home page and gives other tools to help detect how your blog may doing visitor and se’s wise.
Jim
That is good to know. OTOH some people reported on the support forum that total cache “breaks” stuff, lol, esp. the “minify” function. :D
I guess I have been lucky, nothing has broken yet and it has helped my vps level 7 server hold the traffic before I have to break down and buy a dedicated..haha.
W3 Total Cache does have its own minify-style function for both javascript and CSS, so I suspect that there’s a plugin clash, rather than it solely being W3TC. It is complicated to setup though.
I’m going to investigate the mobile version now though – it’s a great idea, as implementing websites for mobile looks far too technical for me.
Where have you been Arindam? Haven’t heard from you in a while. These plug-ins are a bit more technical in nature, and I’m not fully up on the techie side of owning a website, but I’ll check them out further, because you recommended them.
Thanks and God bless.
Don’t know why you call this stuff boring….to crazy nerds like us this info is amazing!!!
I’m off to go play with the new wp plugins now!
Thanks,
Chef Brian
Thanks Arindam! The List Category Posts plugin that creates a list of all the posts on a blog is EXACTLY what I wanted but didn’t know it existed. I have a sitemap plugin but I wanted a list that was more visitor friendly. That one looks perfect. – Rosie
Nice list, thanks. I like the look of the keyword linker and may check out seo ultimate.
[…] Huge List of Cool WordPress Plugins-Part 4 […]