Monday, December 27, 2010

Turn WordPress Into a Project Management System

collabpress-mainIf you run a multi-authors blog, there will be times when you need to create projects and assign tasks to your authors. Instead of using a third party project management software, you can now use setup a free project management system right within WordPress, with the help of CollabPress.

CollabPress is a plugin for WordPress that transforms your WP setup into a project management platform. It is developed by Brad Williams (@williamsba) and comes with plenty of features at a price of free.

Thursday, December 23, 2010

Turn Your WordPress Into A Private Twitter-like System

inhouse-twitter-mainWordPress is best known as a blogging platform, but it can be a versatile piece of software as well, allowing you to turn it to almost anything you want. Here is how you can turn a WordPress installation into a in-house private Twitter-like microblogging system.

There is little or no coding required. What you need here is a custom theme and some plugins. There are currently two themes that can instantly turn your blog into a status update system: Prologue and P2.

Both themes require little or no configuration. As soon as you activate the theme, your blog frontend instantly become a Twitter clone.

WordPress Prologue Theme
Prologue Theme

WordPress P2-Theme
P2 Theme

Prologue theme is just a basic Twitter-like theme with no configuration option. On the other hand, P2 theme is more comprehensive and allows you to switch between "status update", "blog post", "Quote" and "Link".

With the P2 theme, you can also configure who can post update, the background image/color, show/hide sidebar etc.

inhouse-twitter-p2-options

Adding a login form to the sidebar


Instead of getting your users to go to the wp-login page, it will be great if you can add a login form to your sidebar and let your users login from the front page.

What you need here is the sidebar-login plugin. Install the plugin and add the widget to your sidebar.

inhouse-twitter-sidebar-login

At the sidebar-login option page, remember to set the "Login Redirect Url" to your Home page.

inhouse-twitter-login-options

Show status update only for logged in users


If you want to use this as a in-house private Twitter system, you won't want the public to see your update. The best way is to show the update only for logged in users.

Open the index.php file in your P2 theme folder.

Scroll down until you see the code:

[php]</h2>
<ul id="postlist">
<?php if ( have_posts() ) : ?>[/php]

Insert in the following code after </h2>

[php]<?php if(!is_user_logged_in()): ?>
<p>You need to log in to view the status update!</p>
<?php else : ?>[/php]

So now you should have:

[php]</h2>
<?php if(!is_user_logged_in()): ?>
<p>You need to log in to view the status update!</p>
<?php else : ?>
<ul id="postlist">
<?php if ( have_posts() ) : ?>[/php]

and don't forget to close the loop. Insert <?php endif; ?> before the </div><!-- main-->.

[php] <?php endif; ?>
</div> <!-- main -->[/php]

Repeat the same for the single.php file as well. You should see the following for non-logged in users.

inhouse-twitter-not-logged-in

Alternatively, you can also use the Private-WP plugin to force your users to login before they can read your status update. This is an easier implementation, but a less elegant solution.

This tutorial only touches the tip of the iceberg. If you have added your own modifications/enhancement, do let us know in the comments.

Tuesday, December 21, 2010

How to Create And Embed A Contact Form On The Fly

grunion-form-builder-smallCreating and embedding a form into your WordPress blog is not as easy as it seems. Since WordPress doesn't come with a built-in form builder, you will have to first install and activate a contact form plugin, then go to the plugin setting to create and configure the form. Lastly, go to your new post and copy the form shortcode into the content area. With Grunion contact form, you can now eliminate all the above mentioned process and create/embed a form to your post on the fly.

Monday, December 20, 2010

How to Make Your Theme Printer-Friendly Without Plugins

printer-iconIf you consistently provide good content on your blog, there is a high chance that some of your readers will print out your articles for future reference. The problem is, while your blog might look nice in the browser, it could be in a mess when you print it out. While there are several plugins that can format your site to printer-friendly layout, they can add extra overhead to your system and mess up your permalink structure (some plugins add a "/print" behind your URL). Here's a little trick to make your site printer friendly, without using any plugin.

Thursday, December 16, 2010

Snippet: How to Enable Shortcode in Widget

The best way to implement php code in the widget is via the use of shortcode. The following line of code is all you need to enable the shortcode for widget function.

In your functions.php file, paste the following:
[php]add_filter('widget_text', 'do_shortcode');[/php]

That's it.

How to Show Related Posts in WordPress Without Using Plugin

related-posts-wordThere are many plugins that allow you to display related posts on your site, but most of them are either too bloated, too complicated or too simple. A better way is to implement the related posts function directly into your theme and reduce the server overhead. In this way, you can also theme it up the way you want it.

This tutorial will teach you how you can show related posts in your site without using any plugin.

Tuesday, December 14, 2010

Easily Migrate Your SEO Settings With A Single Click

seo-logoWhen it comes to the list of "must-have" plugins, SEO plugin will always be in the list. A good SEO plugin can help you to rewrite your site title, description, meta tags and also redirect all your dead permalinks to active one. At its best, It can help you to achieve higher search ranking, without you having to be a SEO expert.

With that said, there are plenty of SEO plugins that you can use. The All in One SEO Pack, Platinum SEO, Headspace2 and WordPress SEO are all great SEO plugins available in the repository. To make things more complicated, premium themes such as Headway themes, Frugal, Thesis, Genesis etc also comes with inbuilt SEO settings that make SEO plugins obsolete.

Monday, December 13, 2010

How to Embed Tweets In Your Posts

embed-tweet-blackbirdBlog posts,Twitter, Facebook and many other social networks often go hand in hand. When you publish a blog post, you will often tweet the link to your Twitter account. Sometime when you send a tweet, you will also embed it in your blog post. The problem is, embedding a tweet in your post is not as easy as it should be. It often involves taking screenshot of the tweet, crop/edit it before you upload it to your post. With the introduction of Blackbird Pie, the whole process just become much easier.

Blackbird Pie is a method created by Twitter Media to easily embed a tweet on your site. Feed it with the tweet's URL and it will generate the necessary code for you to copy/paste to your site.

Sunday, December 12, 2010

Fixing the Blackbird Pie Plugin - undefined function mb_strlen

If you are using the Blackbird Pie plugin to embed tweets to your posts, you might see an error message Call to undefined function mb_strlen(). The reason for this error is because the plugin is using the mb_strlen function that is not activated by default.

To fix this, go to the Blackbird Pie plugin folder and open unicode.php in your text-editor. At line 18, replace the line:

[php firstline="17"]return mb_convert_encoding($swap,&quot;UTF-8&quot;); //not really necessary, but why not.[/php]

with

[php firstline="17"]if ( function_exists('mb_convert_encoding') )
return mb_convert_encoding($swap,&quot;UTF-8&quot;); //not really necessary, but why not.
else
return $swap;[/php]

At line 21 and 25, replace the line:

[php]$strlen = mb_strlen($string);[/php]

with

[php]if(function_exists('mb_strlen'))
$strlen = mb_strlen($string);
else
$strlen = strlen($string);[/php]

Save and upload the file to your server. It should work now.

via WordPress Support

Limit The jQuery Lazy Load Plugin to Operate Only In The Content Area

lazy-dazyIf you have noticed, one of the way that highly-trafficked site save bandwidths is to use a lazy load plugin. What this lazy load plugin does is to load the images only when they become visible on the screen. Any images below the visible screen will not be displayed. This is also known as on-demand loading.

In WordPress, there are several lazy load plugins that you can use. One of my favorite is the jQuery Image Lazy Load plugin, simply because it just works the moment you activate it. No configuration is required.

Thursday, December 2, 2010

How to Add Custom Navigation Menus to Your Themes

menus-compassWordPress 3.0 comes with support for custom navigation menu. The new feature is a good way for you to add navigation menu to your theme with little configuration. Best of all, it allows you to administer the menus from your dashboard. No longer do you need to tamper with the code to add/remove items from the menus.

Now, unless you are using an updated theme, chances are, your old theme does not support this new custom navigation menu feature. Here is how you can modify your current theme to support the menus feature.

Wednesday, December 1, 2010

Dropbox-CDN Uses Your Dropbox Account As Free CDN

dropbox-cdnI am sure you have heard of Dropbox - the web storage service that allows you to access your files from almost everywhere. If you are a WordPress user as well as a Dropbox user, you can now host (some of) your theme files in Dropbox and save some bandwidth.

A new plugin known as Dropbox-CDN helps you automate the process. All you need to do is go to your Dropbox's Public folder, create several level of folders with the same folder structures as your WordPress server (for example: /wp-content/themes/your-theme-folder/) and place all your js, css and image files into it. Copy and paste your Dropbox public link to the Dropbox-CDN options page and it will do the rest for you.

Note: This plugin only supports themes who use the filters 'template_directory', 'template_directory_uri', 'stylesheet_directory', and 'stylesheet_directory_uri' to determine the paths to the theme's template and stylesheet files.