I'm attending WordCampNYC!

WordCampNYC – Nov 14-15

Wordpress MU Site Upgrade Bug: Your server may not be able to connect to blogs running on it

I was upgrading mu site to 2.8.4. I went to Site Admin -> Upgrade and hit Upgrade Site button. It worked for first 25 – 30 blogs and then died with message

Warning! Problem upgrading . Your server may not be able to connect to blogs running on it.
Error message: 200: Operation timed out after 3 seconds with 0 bytes received

This is what I did to fix my problem

I opened wp-admin/wpmu-upgrade-site.php and wp-includes/http.php

function &_getTransport( $args = array() ) {

on line number 94 of wp-includes/http.php, wordpress tests different http request methods exist on your server during upgrade.

1st test was the culprit on my server which uses http_request method built into PHP. I guess this method was taking long time to resolve DNS and so it was timing out.

if ( true === WP_Http_ExtHttp::test($args) ) {
$working_transport['exthttp'] = new WP_Http_ExtHttp();
$blocking_transport[] = &$working_transport['exthttp'];
}

I did comment out this test and let Wordpress start with next one.

if ( true === WP_Http_Curl::test($args) ) {
$working_transport['curl'] = new WP_Http_Curl();
$blocking_transport[] = &$working_transport['curl'];
}

And guess what? All 150 blogs were updated in a few minutes without any problem.

If even curl does not work for you, you can comment it out and move on to the next until WP upgrade site works for you.

Good Luck!

Wordpress: Calculate font-size in Tag Cloud

$fontSizeUnits = "px";
$fontSizeMin = 15;
$fontSizeMax = 50;
$maxValue = 12;
$minValue = 1;

where $results is MySQL result set.

foreach ($results as $result) {
$tag = $result->name;
$tagURI = get_option('home') . '/' . $result->taxonomy . '/' . $result->slug . '/';
$count = $result->count;
$weight = ( $count - $minValue ) / ( $maxValue - $minValue );
$fontSize = $fontSizeMin + round( ($fontSizeMax - $fontSizeMin) * $weight );
echo "<li style='display: inline-block; font-size:". $fontSize. $fontSizeUnits."'><a href=".$tagURI." title='(".$count." posts)'>".$tag."</a></li>";
}

Date archive for a category

There are a few ideas out there How to build date archive for a category. I am joining the race now.

Some of us, wordpress developers, may think this is hacky but I bet a few will like it this way because this works!.
(more…)

JSON and Wordpress

If you want to encode/decode JSON within/using wordpress, you can take a look at

/wp-includes/js/tinymce/plugins/spellchecker/classes/utils/JSON.php

This file has Moxiecode_JSON class which can do that for you.
(more…)

Back in USA

Hi Everyone. I’m back in the business!

I decided I will write about my trip the same day I was landed in USA but I was caught up checking 1,000 emails and work load.

It’s always great going back home and meeting your people. I enjoyed a lot this time in India. Hanging out with friends, family regroup, my grandmother and a lot! This year I relaxed a bit as well and some days were so busy. Kite Fastival, Uttarayana or Makarsakranti was too good. I fly kites after 2 years.
(more…)

Automatically adjust for daylight saving time

I have been googling for this and again come up with my own solution.


function my_set_gmt_offset($offset) {
$timezone = date("T");
if($timezone == 'EDT') {
$offset = '-4';
}
else if($timezone == 'EST') {
$offset = '-5';
}
return $offset;
}
if(function_exists('add_filter')) {
add_filter('option_gmt_offset', 'my_set_gmt_offset');
}

Share your feedback via comments.

Comments Pagination – Wordpress – Bug Fixed!

Actually, I did not create a plugin but I wrote a code snippet that did this job for me.

Add these lines to comments.php in your active theme folder.

$comments_per_page = 5;
global $post;
$total = $post->comment_count;
if($total > 0) {
$apage=isset($_GET['apage']) ? intval($_GET['apage']) : 1;
$comments=array_slice($comments, intval(($apage-1)*$comments_per_page),intval($comments_per_page));
}

Insert this code right after if ($comments) statement

$commentCounter = (($apage-1)*$comments_per_page);
$from_page = $commentCounter+1;
if($apage == 1) {
$to_page = $comments_per_page;
if($total < $to_page) {
$to_page = $total;
}
}
else {
$to_page = $from_page + $comments_per_page - 1;
if($to_page > $total) {
$to_page = $total;
}
}

Insert this line where you want page links to appear in comments.php.

<?php echo paginate_links( array(
'base' => add_query_arg( 'apage', '%#%#comments' ),
'format' => '',
'total' => ceil($total / intval($comments_per_page)),
'current' => $apage
));

I think this is it. It should work. Give it a try and share your feedback via comments.

Flickr photos in post using shortcode

Shortcodes are awesome! This time I am showing photos from my flickr account to wordpress post.

Content from X'Mas in NY

Google Shared Items in post using shortcode

New in WordPress 2.5 is the Shortcode API, a simple set of functions for creating macro codes for use in post content. I thought let me see how it works! I am showing my google reader shared items within a post using shortcode.

2010: A Theme Odyssey
From: WordPress Development Blog

WordPress 2.9
From: Lester Chan's WordPress Plugins

Create a Simple Slideshow Using MooTools
From: David Walsh :: PHP, CSS, MooTools, jQuery, and Everything Else

Design v5
From: CSS-Tricks