<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>geniosity &#187; wordpress</title>
	<atom:link href="http://www.geniosity.co.za/tags/musings/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.geniosity.co.za</link>
	<description>a place of wonder and geekery...</description>
	<lastBuildDate>Thu, 14 Apr 2011 13:53:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Generic Stats WordPress Plugin on version 1.2</title>
		<link>http://www.geniosity.co.za/musings/wordpress/generic-stats-wordpress-plugin-on-version-1-2/</link>
		<comments>http://www.geniosity.co.za/musings/wordpress/generic-stats-wordpress-plugin-on-version-1-2/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 21:11:29 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.geniosity.co.za/?p=325</guid>
		<description><![CDATA[Just another short little note to say that the Generic Stats plugin has been upgraded. There are no MAJOR changes. Here are the changes that HAVE been made: * Updated look &#38; feel of admin page * Changed to use new &#8220;get options&#8221; methods * Added pretty little &#8220;Plugin Appreciation&#8221; box on the Admin page [...]]]></description>
			<content:encoded><![CDATA[<p>Just another short little note to say that the Generic Stats plugin has been upgraded.</p>
<p>There are no MAJOR changes.</p>
<p>Here are the changes that HAVE been made:</p>
<ul>
<li>* Updated look &amp; feel of admin page</li>
<li>* Changed to use new &#8220;get options&#8221; methods</li>
<li>* Added pretty little &#8220;Plugin Appreciation&#8221; box on the Admin page</li>
<li>* Updated links to the plugin&#8217;s pages</li>
</ul>
<p>Go read more about this plugin here:</p>
<p><a title="WordPress Plugin: Generic Stats" href="http://www.geniosity.co.za/tools/wordpress-hacks/generic-statistics-wordpress-plugin/">Generic Stats Plugin</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.geniosity.co.za/musings/wordpress/generic-stats-wordpress-plugin-on-version-1-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Please Link 2 Me Plugin updated to version 1.5</title>
		<link>http://www.geniosity.co.za/musings/wordpress/please-link-2-me-plugin-updated-to-version-1-5/</link>
		<comments>http://www.geniosity.co.za/musings/wordpress/please-link-2-me-plugin-updated-to-version-1-5/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 22:41:19 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.geniosity.co.za/?p=316</guid>
		<description><![CDATA[So, just a short post to say that the &#8220;Please Link 2 Me&#8221; WordPress plugin has been updated to version 1.5 Here&#8217;s a copy of the &#8220;changelog&#8221; section in the readme.txt: = 1.5 = * 2009/11/01 * Fixed changelog = 1.4 = * 2009/11/01 * Recoded to use new Options methods * Changed look &#38; [...]]]></description>
			<content:encoded><![CDATA[<p>So, just a short post to say that the &#8220;Please Link 2 Me&#8221; WordPress plugin has been updated to version 1.5</p>
<p>Here&#8217;s a copy of the &#8220;changelog&#8221; section in the readme.txt:</p>
<blockquote><p>= 1.5 =<br />
* 2009/11/01<br />
* Fixed changelog</p>
<p>= 1.4 =<br />
* 2009/11/01<br />
* Recoded to use new Options methods<br />
* Changed look &amp; feel of admin section<br />
* Added option to modify size of TextArea (the box for link code)<br />
* Changed main URLs for the plugin<br />
* Added ability to add the box to a Page</p></blockquote>
<p>I had 2 updates today because I had a copy/paste issue with the documentation. It&#8217;s been a long day.</p>
<p>You can read more about it the plugin here: <a title="WordPress plugin: Please Link 2 Me" href="http://www.geniosity.co.za/tools/wordpress-hacks/please-link-2-me-wordpress-plugin/">Please Link 2 Me WordPress Plugin</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.geniosity.co.za/musings/wordpress/please-link-2-me-plugin-updated-to-version-1-5/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Shell Script for Automating WordPress updates for multiple blogs</title>
		<link>http://www.geniosity.co.za/musings/wordpress/shell-script-automate-wordpress-updates-for-multiple-blogs/</link>
		<comments>http://www.geniosity.co.za/musings/wordpress/shell-script-automate-wordpress-updates-for-multiple-blogs/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 09:55:11 +0000</pubDate>
		<dc:creator>james</dc:creator>
				<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.geniosity.co.za/musings/?p=250</guid>
		<description><![CDATA[Many moons ago I read Joost de Valk&#8217;s blog post about upgrading and installing WordPress from SVN. Since then, every blog I maintain I use the WordPress svn repository to check out, and to update using the simple command of &#8220;svn sw&#8220;. But even with that ease, it can get a bit tedious to upgrade [...]]]></description>
			<content:encoded><![CDATA[<p>Many moons ago I read Joost de Valk&#8217;s blog post about <a href="http://yoast.com/upgrading-and-installing-wordpress-from-subversion/">upgrading and installing WordPress from SVN</a>. Since then, every blog I maintain I use the WordPress svn repository to check out, and to update using the simple command of &#8220;<strong>svn sw</strong>&#8220;.</p>
<p>But even with that ease, it can get a bit tedious to upgrade 10 blogs, for instance.</p>
<p>So, as all &#8220;script writers&#8221; that are in between TV Series do, I wrote a script to automate this.<br />
<span id="more-250"></span><br />
To run this script, there are 2 critical requirements:</p>
<p>- You have access to the command line on your server (SSH access)</p>
<p>- Your WordPress directories were checked out of SVN, and so contain all the required &#8220;.svn&#8221; directories.</p>
<p>So, just in time for WordPress 2.7, which has the ability to update at the click of a button from the admin panel, here&#8217;s my script.</p>
<p>A basic rundown of what it does:</p>
<p>- Reads through a text file that you need to create containing the following 3 pieces of info, separated by colons (:)</p>
<ol>
<li> Your site URL without http://. Example: www.geniosity.co.za/musings</li>
<li> The directory your site is in. Example: /path/to/your/site/dir/home/james123/public_html/musings</li>
<li> The first part of the tar file name that will be created with your backup. Example: mus</li>
</ol>
<p>Here&#8217;s what it might look like with the above info:</p>
<p><em>www.geniosity.co.za/musings:/home/james123/public_html/musings:mus</em></p>
<h3>Setup and Execution of the script</h3>
<p>So, your steps to getting this to run successfully are:</p>
<p>1 &#8211; Create the text file containing a list of all your sites and their relevent directories, in the above format. 1 record per site.</p>
<p>2 &#8211; Copy the script below to a relevant directory on your server, and give it executable permissions</p>
<p>3 &#8211; Read the &#8220;<strong>INITIAL SETUP</strong>&#8221; section just below &#8220;<em>YOU MUST CHANGE THESE SETTINGS</em>&#8221; near the top of the script, and create any directories that are needed in this section.</p>
<p>4 &#8211; Update the section where it says &#8220;<em>YOU MUST CHANGE THESE SETTINGS</em>&#8221; with the directories and variabls that are required.</p>
<p>5 &#8211; Run the script. I recommend using the following command:</p>
<p><strong>nohup scriptname.sh &#038;</strong></p>
<p>This will run it in the background, and if you get disconnected for some reason while it&#8217;s running, it will continue in the background.</p>
<h3>The benefits of this script</h3>
<p>The 2 main benefits of this script are:</p>
<p>- Speed and ease of upgrading multiple blogs. As <a href="http://ma.tt">Matt Mullenweg</a> mentioned on a <a href="http://wp-community.org/2008/10/17/episode-45-matt-mullenweg-interview-automattic-acquires-intense-debate-discussion-of-wordcamps/">WordPress Podcast episode</a> while being interviewed by <a href="http://wp-community.org/">Charles Stricklin</a>, if it takes you more than 2 minutes to upgrade your blog, there&#8217;s a problem.</p>
<p>- The second benefit is that this script sends you an email when it completes with the log files generated, as well as the Upgrade Link so you can just click it to upgrade the Database if required.</p>
<h3>Other notes on this script</h3>
<p>Please note, this script does NOT upgrade or backup your blog&#8217;s database. I recommend the &#8220;<a href="http://www.ilfilosofo.com/blog/wp-db-backup">WordPress Database Backup</a>&#8221; Plugin for that.</p>
<p>Also, I cannot guarantee it works for you. As I mentioned, I have tried this on 2 different servers with 2 different hosts, and it worked 100% there. But, for safety&#8217;s sake, do a manual backup the first time to ensure it all goes as planned.</p>
<p>And, if you&#8217;re wondering why I have all the extra brackets in the script, it&#8217;s because of the cool code-folding capabilities in <a href="http://www.jedit.org">jEdit, <a href="http://www.geniosity.co.za/musings/tags/jedit/">the Programmer&#8217;sText editor I use</a>. For a screen shot of this, take a look at the bottom of this post.</p>
<h3>The WordPress Upgrade Script</h3>
<p>If you have any changes or recommendations, feel free to let me know in the comments.</p>
<pre lang="bash">#!/bin/bash
################################################################################

#                                                                              #
#{--------------------------   wpUpgrade.sh   -------------------------------- #
#                                                                              #
# This script will go through a list of your WordPress websites that are       #
#  hosted on the same server, and update them using SVN (if they were initially#
#  installed using SVN).                                                       #
#                                                                              #
# Please ensure that you have set the carious Variables in the INITIAL SETUP   #
#  section.                                                                    #
#                                                                              #
# The SITE_INFO variable must point to a text file containing records in the   #
#  following format separated by colons (":")                                  #
#                                                                              #
# www.yoursite.com:/path/to/your/site/dir:filename                             #
#                                                                              #
# For example:                                                                 #
#                                                                              #
# www.geniosity.co.za/musings:/home/james123/public_html/musings:musings       #
#                                                                              #
# The last field is the first part of the tar file name that will be generated.#
# For example: musings.20081024_1233.tar.bz2                                   #
#                                                                              #
#                                                                              #
#==============================================================================#
#                                                                              #
#                          MODIFICATION LOG                                    #
#                                                                              #
#  DATE       DEVELOPER  VERSION  DESCRIPTION                                  #
# ---------- ----------- -------- -------------------------------------------- #
# 2008/10/24 J. McMullan          Script Written.                              #
#                                                                              #
##############################################################################}#
################################################################################
#{--- INITIAL SETUP...
#----------------------
#--- YOU MUST CHANGE THESE SETTINGS
#------

#- The version of WordPress you are upgrading to
#- Example: "2.6.5"
NEW_VERSION_OF_WORDPRESS="2.6.5"

#- A temporary location for script output
#- Example: /home/userid/tmp
TEMP_DIR=/home/geniosit/tmp

#- A Directory where you want to place the backup files created
#- Example: /home/userid/backups
BACKUP_DIR=/home/geniosit/backups

#- A Directory where this script will output the logs
#- Example: /home/userid/logoutput
LOGS_DIR=/home/geniosit/scriptsoutput

#- The text file containing the list of WordPress sites and their directories
#- Example: /home/userid/scripts/wpsites.txt
SITE_INFO=/home/geniosit/scripts/wpdirs.txt

#- The email address where you will receive your messages from the script
EMAIL_ADDRESS="geniosity@gmail.com"

#- If you want to skip making backups (NOT recommended), change this to TRUE
SKIP_BACKUPS=FALSE

#------
#}--- END INITIAL SETUP...
################################################################################

################################################################################
#==== YOU DON'T NEED TO CHANGE ANYTHING PAST THIS POINT
#=======================================================
################################################################################
#{--- VARIABLES
#------

#------------------
#{General Variables
#---
THIS_SCRIPT_NAME=`basename $0`
RIGHT_NOW=`date +%Y%m%d_%H%M%S`
LOG_FILE=$LOGS_DIR/$THIS_SCRIPT_NAME.$RIGHT_NOW.log
WORDPRESS_SVN_DIRECTORY="http://svn.automattic.com/wordpress/tags"

#}----------------------------
#------------------
#{ERROR Variables
#---

errorLocation=
errorCode=
errorMessage=

#}----------------------------

#------------------------
#--- END VARIABLES SETUP
#}----------------------------
################################################################################

################################################################################
#{--- FUNCTIONS
#------

#-----------------------------------------------------
# Functions for logging output
#----------

function logtext {
    RIGHT_NOW=`date +%Y%m%d_%H%M%S`
    echo "$RIGHT_NOW: $1" | tee --append $LOG_FILE
}

function logsep {
    echo "--------------------------------------------"  | tee --append $LOG_FILE
}

#-----------------------------------------------------
# Functions for sending mails
#----------

function setupMailEnv {
    logtext "In Function: setupMailEnv"
    TEMP_MAIL_FILE=$TEMP_DIR/$THIS_SCRIPT_NAME.mail
    >$TEMP_MAIL_FILE
}

function createMailFile {
    logtext "In Function: createMailFile"
    MAIL_DATE_TIME=`date +%Y%m%d_%H%S`
    echo "$MAIL_DATE_TIME: $*" >> $TEMP_MAIL_FILE
}

function sendTheMail {
    logtext "In Function: sendTheMail"
    logtext "TEMP_MAIL_FILE=$TEMP_MAIL_FILE ++ THIS_SCRIPT_NAME=$THIS_SCRIPT_NAME ++ EMAIL_ADDRESS=$EMAIL_ADDRESS"
    cat $TEMP_MAIL_FILE | mailx -s "Output from $THIS_SCRIPT_NAME" $EMAIL_ADDRESS
}

#-----------------------------------------------------
# Function to validate Required Variables
#----------
function validateRequiredVariables {
    if [[ -z $NEW_VERSION_OF_WORDPRESS ]]; then
        errorLocation="In Function: validateRequiredVariables"
        errorCode=90
        errorMessage="The NEW_VERSION_OF_WORDPRESS variable has not been set. Please ensure this is set to the latest version of WordPress."
        logSendErrorMessages
        exit $errorCode
    fi

    if [[ -z $TEMP_DIR ]]; then
        errorLocation="In Function: validateRequiredVariables"
        errorCode=91
        errorMessage="The TEMP_DIR variable has not been set. Please ensure this is set to a valid directory before proceeding."
        logSendErrorMessages
        exit $errorCode
    fi

    if [[ -z $LOGS_DIR ]]; then
        errorLocation="In Function: validateRequiredVariables"
        errorCode=92
        errorMessage="The LOGS_DIR variable has not been set. Please ensure this is set to a valid directory for the log files."
        logSendErrorMessages
        exit $errorCode
    fi

    if [[ -z $SITE_INFO ]]; then
        errorLocation="In Function: validateRequiredVariables"
        errorCode=93
        errorMessage="The SITE_INFO variable has not been set. Please ensure this is set the full path and file name for the file containing your list of sites."
        logSendErrorMessages
        exit $errorCode
    fi

    if [[ ! -s $SITE_INFO ]]; then
        errorLocation="In Function: validateRequiredVariables"
        errorCode=94
        errorMessage="It looks like you settings file is empty (or doesn't exist). Please check that the file $SITE_INFO is valid (and that the SITE_INFO variable is set correctly)."
        logSendErrorMessages
        exit $errorCode
    fi

    if [[ -z $EMAIL_ADDRESS ]]; then
        errorLocation="In Function: validateRequiredVariables"
        errorCode=95
        errorMessage="The EMAIL_ADDRESS variable has not been set. This script needs an email address to notify you when upgrades are complete or if there are any errors.."
        logSendErrorMessages
        exit $errorCode
    fi

}

#-----------------------------------------------------
# Function to log and send error message
#----------
function logSendErrorMessages {
    logtext "ISSUE IN SECTION: $errorLocation"
    logtext "ERROR CODE: $errorCode"
    logtext "ERROR MESSAGE: $errorMessage"
    setupMailEnv
    createMailFile "ISSUE IN SECTION: $errorLocation"
    createMailFile "ERROR CODE: $errorCode"
    createMailFile "ERROR MESSAGE: $errorMessage"
    sendTheMail
}

#-----------------------------------------------------
# Function to send upgrade link and message
#----------
function sendUpgradeLink {
    logtext "SITE: $WP_SITE"
    logtext "MESSAGE: UPGRADED SUCCESSFULLY!"
    logtext "UPGRADE LINK: http://$WP_SITE/wp-admin/upgrade.php"
    setupMailEnv
    createMailFile "SITE: $WP_SITE"
    createMailFile "MESSAGE: UPGRADED SUCCESSFULLY!"
    createMailFile "UPGRADE LINK: http://$WP_SITE/wp-admin/upgrade.php"
    sendTheMail
}

#-----------------------------------------------------
# Function to send the log file by mail
#----------
function sendLogFile {
    logtext "About to send log file by mail"
    setupMailEnv
    cat $LOG_FILE >> $TEMP_MAIL_FILE
    sendTheMail
}

#-----------------------------------------------------
# Function to log and send error message
#----------
function backupTheDirectory {
    logtext "In function: backupTheDirectory"

    if [[ -z $WP_DIR || -z $WP_TAR_FILE ]]; then
        errorLocation="In Function: backupTheDirectory"
        errorCode=1
        errorMessage="Variables WP_DIR and WP_TAR_FILE are not set correctly.++ WP_SITE=$WP_SITE ++ WP_DIR=$WP_DIR ++ WP_TAR_FILE=$WP_TAR_FILE ++ Ensure the settings file contains proper records"
        logSendErrorMessages
        return $errorCode
    fi

    if [[ ! -e $BACKUP_DIR ]]; then
        errorLocation="In Function: backupTheDirectory"
        errorCode=2
        errorMessage="Backup directory does not exist! Please ensure that the directory $BACKUP_DIR exists."
        logSendErrorMessages
        return $errorCode
    fi

    if [[ ! -w $BACKUP_DIR ]]; then
        errorLocation="In Function: backupTheDirectory"
        errorCode=3
        errorMessage="Backup directory is not writable! Please ensure that the directory $BACKUP_DIR has write permissions."
        logSendErrorMessages
        return $errorCode
    fi

    if [[ ! -e $LOGS_DIR ]]; then
        errorLocation="In Function: backupTheDirectory"
        errorCode=4
        errorMessage="Logs directory does not exist! Please ensure that the directory $LOGS_DIR exists."
        logSendErrorMessages
        return $errorCode
    fi

    if [[ ! -w $LOGS_DIR ]]; then
        errorLocation="In Function: backupTheDirectory"
        errorCode=5
        errorMessage="Logs directory is not writable! Please ensure that the directory $LOGS_DIR has write permissions."
        logSendErrorMessages
        return $errorCode
    fi

    if [[ ! -e $WP_DIR ]]; then
        errorLocation="In Function: backupTheDirectory"
        errorCode=6
        errorMessage="WP_DIR directory does not exist! Please ensure that the directory $WP_DIR exists."
        logSendErrorMessages
        return $errorCode
    fi

    tar cvfj $BACKUP_DIR/$WP_TAR_FILE $WP_DIR >> $LOG_FILE
    if [[ $? -gt 0 ]]; then
        errorLocation="In Function: backupTheDirectory"
        errorCode=$?
        errorMessage="Problem creating tar file.++ WP_TAR_FILE=$WP_TAR_FILE ++ WP_DIR=$WP_DIR ++ LOG_FILE=$LOG_FILE"
        logSendErrorMessages
        return $errorCode
    fi

}

#------------------------
#}--- END FUNCTIONS SETUP
################################################################################

clear
logtext "**********************************************************"
logtext "****         STARTING WORDPRESS UPDATE SCRIPT          ***"
logtext "**********************************************************"

validateRequiredVariables

for WP_RECORD in `cat $SITE_INFO`;
do
    WP_SITE=`echo $WP_RECORD | awk -F: '{print $1}'`
    WP_DIR=`echo $WP_RECORD | awk -F: '{print $2}'`
    WP_BACKUP_FILE=`echo $WP_RECORD | awk -F: '{print $3}'`
    RIGHT_NOW=`date +%Y%m%d_%H%M%S`
    WP_TAR_FILE=$WP_BACKUP_FILE.$RIGHT_NOW.tar.bz2

    logsep
    logtext "Processing site: $WP_SITE"
    logtext "Processing directory: $WP_DIR"

    if [[ $SKIP_BACKUPS != TRUE ]]; then
        logtext "About to do backup for $WP_SITE"
        logtext "tar file will be: $WP_TAR_FILE"
        backupTheDirectory
        if [[ $? -gt 0 ]]; then
            logtext "There was a problem doing the backups for site: $WP_SITE. EXITING!"
            sendLogFile
            exit $?
        fi

        logtext "Finished doing backups."
    fi

    logsep
    logtext "Starting upgrades"

    logtext "Checking the WP_DIR exists. ($WP_DIR)"
    if [[ ! -e $WP_DIR ]]; then
        errorLocation="Checking WP_DIR exists."

        errorCode=10
        errorMessage="WP_DIR directory does not exist! Please ensure that the directory $WP_DIR exists. EXITING!"
        logSendErrorMessages
        sendLogFile
        exit $errorCode
    fi

    logtext "Checking the WP_DIR has write permissions"
    if [[ ! -w $WP_DIR ]]; then
        errorLocation="Checking the WP_DIR has write permissions"
        errorCode=11
        errorMessage="Logs directory is not writable! Please ensure that the directory $WP_DIR has write permissions. EXITING!"
        logSendErrorMessages
        sendLogFile
        exit $errorCode
    fi

    cd $WP_DIR
    if [[ $? -gt 0 ]]; then
        errorLocation="Changing directory to $WP_DIR"
        errorCode=12
        errorMessage="Could not change directory to $WP_DIR! EXITING!"
        logSendErrorMessages
        sendLogFile
        exit $errorCode
    fi

    svn sw $WORDPRESS_SVN_DIRECTORY/$NEW_VERSION_OF_WORDPRESS >> $LOG_FILE
    if [[ $? -gt 0 ]]; then
        errorLocation="Running svn sw command in $WP_DIR"
        errorCode=13
        errorMessage="Problem running svn sw command in $WP_DIR! EXITING!"
        logSendErrorMessages
        sendLogFile
        exit $errorCode
    fi

    sendUpgradeLink

done

logsep
logtext "FINISHED RUNNING UPGRADES"

sendLogFile
</pre>
<h3>The jEdit screenshot</h3>
<p><img src="http://www.geniosity.co.za/genwp/wp-content/uploads/2008/11/shell-script-writing-in-jedit.png" alt="" title="Shell Script Writing in jEdit" width="500" height="400" class="alignnone size-full wp-image-268" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.geniosity.co.za/musings/wordpress/shell-script-automate-wordpress-updates-for-multiple-blogs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updated my plugins &#8211; Please Read This!</title>
		<link>http://www.geniosity.co.za/musings/wordpress/updated-my-plugins-please-read-this/</link>
		<comments>http://www.geniosity.co.za/musings/wordpress/updated-my-plugins-please-read-this/#comments</comments>
		<pubDate>Sat, 16 Aug 2008 10:06:38 +0000</pubDate>
		<dc:creator>james</dc:creator>
				<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.geniosity.co.za/musings/?p=204</guid>
		<description><![CDATA[I&#8217;ve updated my 3 WordPress plugins: WordPress Generic Statistics Plugin Please Link 2 Me Hotlink 2 Link I fell prey to the whole &#8220;serializing serialized options&#8221;. In the words of DD32: Ahah! One of those people who insist on passing serialized data to update_option()&#8230; Honestly: update_option() serializes any non-string data thats passed to it allready, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve updated my 3 WordPress plugins:</p>
<p><a title="WordPress Generic Statistics" href="http://www.geniosity.co.za/musings/wordpress/wordpress-generic-statistics-plugin/">WordPress Generic Statistics Plugin</a></p>
<p><a title="Please Link To Me" href="http://www.geniosity.co.za/musings/wordpress/please-link-2-me-wordpress-plugin/">Please Link 2 Me</a></p>
<p><a title="Hotlinking WordPress Plugin" href="http://www.geniosity.co.za/musings/wordpress/hotlink-2-link-wordpress-plugin/">Hotlink 2 Link</a></p>
<p>I fell prey to the whole &#8220;serializing serialized options&#8221;. In the words of <a title="DD32" href="http://dd32.id.au">DD32</a>:</p>
<blockquote><p>Ahah! One of those people who insist on passing serialized data to update_option()&#8230;</p>
<p>Honestly: <strong>update_option() serializes any non-string data thats passed to it allready, get_option() will unserialize on return as well</strong>, In some cases you can end up with PHP double-serializing the string which while your code works fine with, it can create higher load on PHP..</p>
<p>My advice to all plugin developers: Just pass the data in and let the API do the serializing&#8230;</p>
<p>(Nothing really negitive towards you meant by this message)</p></blockquote>
<p><em>(That wasn&#8217;t directed at me, but I did learn from it)</em></p>
<p>So, please update.</p>
<h3><span style="color: #ff0000;">Warning</span></h3>
<p><strong>BUT!</strong> And this is a <strong>BIG BUT!</strong></p>
<p><strong>This upgrade will corrupt any previous settings you had</strong>. I&#8217;m really sorry about this. And believe me, any pain you go through because of this, I&#8217;ve already felt. I just had to upgrade 12 blogs, and manually re-add the settings that were removed. <img src='http://www.geniosity.co.za/genwp/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.geniosity.co.za/musings/wordpress/updated-my-plugins-please-read-this/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress 2.6 is out and it&#8217;s Turbo Charged</title>
		<link>http://www.geniosity.co.za/musings/tips/wordpress-26-is-out-and-its-turbo-charged/</link>
		<comments>http://www.geniosity.co.za/musings/tips/wordpress-26-is-out-and-its-turbo-charged/#comments</comments>
		<pubDate>Tue, 15 Jul 2008 11:07:40 +0000</pubDate>
		<dc:creator>james</dc:creator>
				<category><![CDATA[tips]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.geniosity.co.za/musings/?p=189</guid>
		<description><![CDATA[It's finally here. And a month ahead of schedule.
Why am I so excited for a new release of WordPress? If you read my "Google Gears and WordPress" post, you'll see.

And, with quite a few cool new features, there's no real reason why you won't want to upgrade. Take a look at the video...]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s finally here. And a month ahead of schedule.</p>
<p><strong>Why am I so excited for a new release of WordPress? </strong></p>
<p>If you read my &#8220;<a title="Google Gears and WordPress" href="http://www.geniosity.co.za/musings/wordpress/wordpress-26-and-google-gears/">Google Gears and WordPress</a>&#8221; post, you&#8217;ll see.  Working from a South African internet connection (the miserable iBurst to be exact), I REALLY appreciate the fact that it is now MUCH quicker to do things like place images and links inside my posts.</p>
<h3>What else is new in this version of WordPress?</h3>
<p>Here&#8217;s a video to highlight the major changes:</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="250" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="flashvars" value="blog_domain=http://wordpress.org/development/2008/07/wordpress-26/&amp;width=400&amp;height=250" /><param name="src" value="http://v.wordpress.com/mARhRBcT/fmt_std" /><embed type="application/x-shockwave-flash" width="400" height="250" src="http://v.wordpress.com/mARhRBcT/fmt_std" flashvars="blog_domain=http://wordpress.org/development/2008/07/wordpress-26/&amp;width=400&amp;height=250"></embed></object></p>
<ul>
<li>Post Revisions: Wiki-like tracking of edits</li>
<li>Press This!: Post from wherever you are on the web</li>
<li>Theme Previews: See it before your audience does</li>
<li>Word count!</li>
<li>Image captions</li>
<li>Bulk management of plugins</li>
<li>Full SSL support</li>
</ul>
<p>For descriptions of these, visit the <a title="WordPress 2.6 changes" href="http://wordpress.org/development/2008/07/wordpress-26-tyner/">WordPress Development blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geniosity.co.za/musings/tips/wordpress-26-is-out-and-its-turbo-charged/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hotlink 2 Link WordPress Plugin</title>
		<link>http://www.geniosity.co.za/musings/wordpress/hotlink-2-link-wordpress-plugin/</link>
		<comments>http://www.geniosity.co.za/musings/wordpress/hotlink-2-link-wordpress-plugin/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 14:35:13 +0000</pubDate>
		<dc:creator>james</dc:creator>
				<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.geniosity.co.za/musings/?p=186</guid>
		<description><![CDATA[Here&#8217;s a new plugin I&#8217;ve written for WordPress users who want to benefit from everybody who hotlinks to their images. A little background on HotLinking If you write an article and place an image in your post, that image most likely sits on your web server. Every time somebody views your post, that person&#8217;s browser [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a new plugin I&#8217;ve written for WordPress users who want to benefit from everybody who hotlinks to their images.</p>
<h3>A little background on HotLinking</h3>
<p>If you write an article and place an image in your post, that image most likely sits on your web server. Every time somebody views your post, that person&#8217;s browser will download the image.</p>
<p>If somebody else likes this image, they can put it in their own article in 2 ways:</p>
<p><span id="more-190"></span></p>
<p>1 &#8211; Download the image, and upload it to their web server the same way YOU did</p>
<p>2 &#8211; Just place a link to the image that is sitting on YOUR webserver</p>
<p>The problem with option 2 is that whenever somebody views the OTHER person&#8217;s website, they&#8217;re effectivley downloading the image from your web server, and using up your bandwidth.</p>
<p>This might not mean much unless you&#8217;re not fortunate enough to have unlimited bandwidth and your website ends up being disabled due to excessive bandwidth usage.</p>
<h3>Prevent HotLinking in WordPress</h3>
<p>There are a few tricks that you could do to prevent hotlinking, though some of them may be a little too technical and not that easy to get right. If you mess something up, you may end up blocking everybody from viewing your website <img src='http://www.geniosity.co.za/genwp/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>As I&#8217;m sure you know, links are beneficial to your website, and the more the merrier (within reason). So, instead of preventing the hotlinking, why not promote it a little, with a little benefit to you and your blog?</p>
<p>This plugin adds a little code to your website so that when somebody right-clicks on an image, they see a popup asking them to use specific code when embedding images in their own articles.</p>
<p>You can see it in action in by right-clicking the images below.</p>
<p><em>Here&#8217;s an image in a WordPress post:</em></p>
<p><img class="alignnone size-full wp-image-188" title="An image in a WordPress Post" src="http://www.geniosity.co.za/genwp/wp-content/uploads/2008/06/prevent-hotlinking-in-wordpress.png" alt="" width="300" height="297" /></p>
<p><em>Here&#8217;s the image after somebody right-clicks on it</em>:</p>
<p><img class="alignnone size-full wp-image-187" title="Benefit from hotlinking in WordPress" src="http://www.geniosity.co.za/genwp/wp-content/uploads/2008/06/benefit-from-hotlinking-in-wordpress.png" alt="" width="300" height="303" /></p>
<h3>Download Hotlink 2 Link WordPress Plugin</h3>
<p>This plugin is now available from WordPress plugin directory.</p>
<p>Here&#8217;s a direct link to the file from the <a href="http://wordpress.org/extend/plugins/hotlink-2-link/">WordPress.org Extend Page for this plugin</a>:</p>
<p><a onclick="clicky.log('/downloads/HL2L_Plugin','HotLink 2 Link Download','outbound');" href="http://downloads.wordpress.org/plugin/hotlink-2-link.zip"><strong>Download Hotlink 2 Link WordPress Plugin</strong></a></p>
<p>I do have a <a title="HotLink 2 Link WordPress Plugin Forum" href="http://www.geniosity.co.za/forums/tools/wordpress/hotlink-2-link-wordpress-plugin">forum for discussing this plugin</a>, if anybody would care to use it <img src='http://www.geniosity.co.za/genwp/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>(<em>It is kinda quiet on that side of my world</em>)</p>
<h3>Honourable Mentions</h3>
<p>This plugin is based on and uses the JavaScript widget &#8220;<a title="LinkMyPics Hotlinking JavaScript Widget" href="http://www.funscripts.net/javascript-widgets/">LinkMyPics</a>&#8220;.</p>
<p>Oh, and by the way, if you&#8217;re into that sort of thing, please consider linking, Stumbling, Del.icio.us.ing, or Digging this&#8230; You should be able to use the links on the top right of the page&#8230;</p>
<h3>Examples of this plugin in use</h3>
<p>And, if you want to see one of the first blogs to use it, go take a look at &#8220;<a title="Innovation Cars is using the Hotlink 2 Link WordPress plugin" href="http://www.innovationcars.com/blog" target="_blank">Innovation Cars</a>&#8220;. With all the great images they have on their site, the owner/admin has said this plugin was something they really needed&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geniosity.co.za/musings/wordpress/hotlink-2-link-wordpress-plugin/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>WordPress 2.6 and Google Gears</title>
		<link>http://www.geniosity.co.za/musings/wordpress/wordpress-26-and-google-gears/</link>
		<comments>http://www.geniosity.co.za/musings/wordpress/wordpress-26-and-google-gears/#comments</comments>
		<pubDate>Sat, 24 May 2008 10:46:29 +0000</pubDate>
		<dc:creator>james</dc:creator>
				<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.geniosity.co.za/musings/?p=182</guid>
		<description><![CDATA[It looks like a new feature in WordPress 2.6 is the "Speed it up!" feature using Google Gears.

At least, I HOPE it comes out with WP2.6 because]]></description>
			<content:encoded><![CDATA[<p><strong>ANOTHER UPDATE</strong>: <em>WordPress 2.6 is out. When you&#8217;ve finished reading the article below (which I recommend <img src='http://www.geniosity.co.za/genwp/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  ), come watch the video about it&#8217;s new features in my post &#8220;<a title="WordPress 2.6 changes" href="http://www.geniosity.co.za/musings/tips/wordpress-26-is-out-and-its-turbo-charged/">WordPress 2.6 is out and it’s Turbo Charged</a>&#8220;</em></p>
<p>So, there I was, having just upgraded my <a title="Install WordPress with WAMP" href="http://www.geniosity.co.za/musings/wordpress/install-wordpress-on-your-windows-machine/">local Windows installation of WordPress</a> so that I could update one of my plugins when I noticed a new piece of text on the top right hand side of my screen:</p>
<p>&#8220;<strong>Speed Up!</strong>&#8221;</p>
<p><em><strong>Little update</strong>: It would appear that this has now been renamed to &#8220;Turbo&#8221;</em></p>
<p>Who is WordPress to tell ME, the king of speed on a PC, to SPEED UP!?!?!<br />
 <img src='http://www.geniosity.co.za/genwp/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>But, always one to improve on a process, I clicked it, and this is what I saw:</p>
<p><img class="alignnone size-full wp-image-183" title="WordPress 2.6 and Google Gears helps speed things up while blogging" src="http://www.geniosity.co.za/genwp/wp-content/uploads/2008/05/wordpress-google-gears.png" alt="WordPress 2.6 and Google Gears helps speed things up while blogging" width="400" height="276" /></p>
<h3>What is Google Gears?</h3>
<p><a title="Google Gears" href="http://gears.google.com/">Google Gears</a> is a browser add-on from Google that enables web applications such as Google Reader and Google Docs to feel more like an offline application like MS Word or Excel.</p>
<p>It does this by storing information on your machine allowing you to read, edit and update &#8220;data&#8221; from the internet without actually being connected. And then, the next time you connect to the internet it synchronises with the website, uploading any changes you&#8217;ve made, and downloading any changes/updates that have been made on the site.</p>
<p>At least, that&#8217;s the very basic explanation of it.</p>
<h3>Google Gears and WordPress</h3>
<p>So, how about an example, using your friendly neighbourhood blogging platform?</p>
<p>Having installed the Google Gears plugin for my browser, I clicked the &#8220;Enable Google Gears&#8221; button, and this is what I saw:</p>
<p><img class="alignnone size-full wp-image-185" title="WordPress using Google Gears to download required information to speed things up" src="http://www.geniosity.co.za/genwp/wp-content/uploads/2008/05/wordpress-google-gears-enabled.png" alt="WordPress using Google Gears to download required information to speed things up" width="400" height="277" /></p>
<p>As you can see, my browser is downloading all the information it needs so that WordPress doesn&#8217;t need to connect to the internet for certain information.</p>
<h3>What has WordPress made faster</h3>
<p>As a side note and introduction to what has been sped up, here&#8217;s a little rant.</p>
<p>I personally LOVE the changes that were implemented with WordPress 2.5.</p>
<p>But, some of the new features (and features I&#8217;ve just started using now that I use the Visual Editor) just aren&#8217;t as cool thanks to the not-so-great internet speeds in South Africa.</p>
<p>For example, if you want to create a link. Every time you click the link icon in the editor&#8217;s toolbar, it has to download the same stuff over and over&#8230;</p>
<p>Well, it looks to me like the WordPress Google Gears implementation has solved that. The link and the &#8220;insert embedded media&#8221; popups are now <strong>instantaneous</strong>!</p>
<p><img class="alignnone size-full wp-image-184" title="WordPress using Google Gears to help speed up the process of adding a link" src="http://www.geniosity.co.za/genwp/wp-content/uploads/2008/05/wordpress-google-gears-add-link.png" alt="WordPress using Google Gears to help speed up the process of adding a link" width="450" height="248" /></p>
<p>Thank you to whoever decided to do this.</p>
<p>It also seems that switching between each &#8220;pane&#8221; in the admin section is a LOT faster&#8230; Believe me, working on the South African tubes (via iBurst), this makes a HUGE difference!</p>
<h3>Google will be PROUD!</h3>
<p>All I can say is, this is going to give Google Gears the much needed attention that they&#8217;ve so far been lacking. Especially since out of all Google&#8217;s products, it&#8217;s only the Google Reader and Google Docs products that utilise Google Gears.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geniosity.co.za/musings/wordpress/wordpress-26-and-google-gears/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>What you can do with WordPress</title>
		<link>http://www.geniosity.co.za/musings/wordpress/what-you-can-do-with-a-wordpress-website/</link>
		<comments>http://www.geniosity.co.za/musings/wordpress/what-you-can-do-with-a-wordpress-website/#comments</comments>
		<pubDate>Sun, 06 Apr 2008 15:05:56 +0000</pubDate>
		<dc:creator>james</dc:creator>
				<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.geniosity.co.za/musings/?p=179</guid>
		<description><![CDATA[In response to a reader question, here's a post about what you can do with WordPress, and how you can go about doing it.]]></description>
			<content:encoded><![CDATA[<p>In response to a few questions by Mary on my post about <a href="http://www.geniosity.co.za/musings/wordpress/install-wordpress-on-your-windows-machine/">using WAMP to install WordPress on your Windows Machine</a>, I&#8217;ve decided to write a post and see if I can help her (and anybody else who needs it).</p>
<p>First, an introduction.</p>
<h3>Everybody should have a website</h3>
<p>I FULLY believe that everybody should have a website. Even more so if you run a business.</p>
<p>In South Africa, if you&#8217;re technically inclined (or, can just follow a few simple instructions) you could have your own website up and running in about 4 hours for about R1000 a year.</p>
<p>If you&#8217;re not really a technical person and you&#8217;d need to hire somebody to help you, then it may cost anywhere from R3000 for setup, and R1000 a year after that. Of course, this depends on the complexity of your website and your requirements.</p>
<p>With it being so easy, you really have no excuse for not having a site.</p>
<h3>Why you should use WordPress</h3>
<p>WordPress, in my opinion, is the best software for running anything from very simple websites to sites of medium complexity.</p>
<p>You can use it if you only need a couple pages containing the following information:</p>
<ul>
<li>Home page</li>
<li>About page, with info about you and your company</li>
<li>Contact page &#8211; NEVER forget to have one of these</li>
</ul>
<p>But, thanks to a whole lot of <a title="WordPress plugins to help you extend WordPress" href="http://wordpress.org/extend/plugins/">WordPress plugins</a> (or just using some extra built-in functionality), you can use your WordPress installation to do the following:</p>
<ul>
<li><a title="A plugin to create a forum on WordPress sites" href="http://www.stuff.yellowswordfish.com/simple-forum/">Have a built-in forum</a></li>
<li><a title="A mailing list plugin for WordPress sites" href="http://www.shiftthis.net/wordpress-newsletter-plugin/">Create a mailing list</a> to keep people up to date with your product listings, perhaps</li>
<li>Have a website with more than one user contributing to it. For example: a news website</li>
<li>Create a blog &#8211; you KNOW it&#8217;s all the craze now <img src='http://www.geniosity.co.za/genwp/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </li>
</ul>
<h3>What will my site look like?</h3>
<p>OK, so Mary&#8217;s first question was: &#8220;I&#8217;m not sure if (and how) I can integrate my own design as I am not willing to use any ready-made templates&#8221;.</p>
<p>What ready-made templates is she talking about? Well, one of the benefits of using WordPress is that a LOT of people have created free templates that you can just upload to your installation to change the way your website looks.</p>
<p>As an example, just do a search in Google for <a title="A google search for free wordpress templates" href="http://www.google.com/search?pws=0&amp;q=free+wordpress+templates">free WordPress Templates</a> or for <a title="A google search for free wordpress themes" href="http://www.google.com/search?pws=0&amp;q=free+wordpress+themes">free WordPress themes</a>.</p>
<p>Of course, because they ARE available for free on the internet, you might not have a unique looking website.</p>
<p>To combat this, you could hire a WordPress template designer to design a custom look for your website, or, you could download one of the free templates and customise it to make it look unique.</p>
<p>Another option is to design your own theme however you normally do it, and then convert it for use with WordPress. <strong>This</strong> is obviously the route that I would recommend to Mary.</p>
<p>But, how do you do that? Well, if you&#8217;re OK with basic programming in PHP, you could take a look at the <a title="WordPress guide to templates and themes" href="http://codex.wordpress.org/Blog_Design_and_Layout#Themes_and_Templates">WordPress guide to coding WordPress themes and templates</a>.</p>
<p>Or, you could hire somebody (like me <img src='http://www.geniosity.co.za/genwp/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ) to take your website layout and create a template that is compatible with WordPress.</p>
<h3>How to publish your WordPress website</h3>
<p>So, now that you&#8217;ve tested your WordPress website using the guide to <a href="http://www.geniosity.co.za/musings/wordpress/install-wordpress-on-your-windows-machine/">install WordPress on your computer</a>, and then you&#8217;ve gone through and created your own theme, you need to upload it for the world to see.</p>
<p>To do that, you need to do the following things:</p>
<ol>
<li>Get a web host &#8211; I recommend the on I use for my South African sites -&gt; <a title="ANNO internet website hosting" href="http://www.anno.co.za/?coupon=geniosity">www.anno.co.za</a></li>
<li>Ensure your web host allows MySQL databases and PHP websites</li>
<li>Follow the instructions for <a title="Instructions for Installing WordPress" href="http://codex.wordpress.org/Getting_Started_with_WordPress#Installation">Installing WordPress</a> (it&#8217;s a little different to installing it on your computer)</li>
<li>Change the settings of your site as appropriate</li>
<li>Upload your WordPress theme and enable it</li>
<li>Write all the pages you need!</li>
</ol>
<p><strong>It is that easy</strong>.</p>
<p>Of course, as I mentioned before, you could hire somebody to do all the technical stuff for you. Then you can rely on them to set up your site and lay it out correctly for optimal search engine crawling (which could help rank you website higher, helping you get more visitors).</p>
<p>So, Mary, hopefully you found this article interesting and helpful as a starting guide.</p>
<p>If anybody has any questions, post them in the comments section below, and I&#8217;ll see if I can answer them.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geniosity.co.za/musings/wordpress/what-you-can-do-with-a-wordpress-website/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress SEO Title Tag for Theme Designers</title>
		<link>http://www.geniosity.co.za/musings/wordpress/wordpress-seo-title-tag-for-theme-designers/</link>
		<comments>http://www.geniosity.co.za/musings/wordpress/wordpress-seo-title-tag-for-theme-designers/#comments</comments>
		<pubDate>Mon, 25 Feb 2008 11:41:45 +0000</pubDate>
		<dc:creator>james</dc:creator>
				<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.geniosity.co.za/musings/wordpress/wordpress-seo-title-tag-for-theme-designers/</guid>
		<description><![CDATA[Everybody knows that H1 tags are supposed to "highlight" the most important heading on the page.

Whether this really helps with a site's SEO is still up for debate, but in my opinion, having a good document structure can only help.

In most (if not all) WordPress themes, it's the Blog's Title/Name that gets the honour of wearing this badge. But your Blog's Name shouldn't necessarily have this honour on page's that have a "main topic". i.e.: Single Post pages.]]></description>
			<content:encoded><![CDATA[<p>Everybody knows that H1 tags are supposed to &#8220;highlight&#8221; the most important heading on the page.</p>
<p>Whether this really helps with a site&#8217;s SEO is still up for debate, but in my opinion, having a good document structure can only help.</p>
<p>In most (if not all) WordPress themes, it&#8217;s the Blog&#8217;s Title/Name that gets the honour of wearing this badge. But your Blog&#8217;s Name shouldn&#8217;t necessarily have this honour on page&#8217;s that have a &#8220;main topic&#8221;. i.e.: Single Post pages.</p>
<p>So, what I recommend that all WordPress theme designers do is use H1 tags for your post&#8217;s Title on the post&#8217;s page, and use H1 around your Blog&#8217;s Name for all the other pages.</p>
<p>Here&#8217;s the code I use to do this:</p>
<h4>For the Blog&#8217;s Name</h4>
<p>a.k.a. <strong>bloginfo(&#8216;name&#8217;)</strong> &#8211; This is usually in the header.php file, just replace the &#8220;H1&#8243; before and after the Name with the following:</p>
<pre name="code" class="php">
&lt;?php echo (!is_single()) ? &quot;h1&quot; : &quot;h2&quot;; ?&gt;
</pre>
<p>So, your Blog Info tags might look like the following now:</p>
<pre name="code" class="php">
&lt;&lt;?php echo (!is_single()) ? &quot;h1&quot; : &quot;h2&quot;; ?&gt; class=&quot;blog_title&quot;&gt;
    &lt;a title=&quot;Home: &lt;?php bloginfo('name'); ?&gt; &quot; href=&quot;&lt;?php echo get_settings('home'); ?&gt;/&quot;&gt;&lt;?php bloginfo('name'); ?&gt;&lt;/a&gt;
&lt;/&lt;?php echo (!is_single()) ? &quot;h1&quot; : &quot;h2&quot;; ?&gt;&gt;
</pre>
<p>(Of course, this doesn&#8217;t take into account that you&#8217;ve replaced the php calls to your Blog&#8217;s Name and URL with hardcoded versions once you&#8217;ve implemented a theme on your site).</p>
<h4>Replace the H2 tag for your Post Title</h4>
<p>And now, of course, you need to do the opposite for your post titles.</p>
<p>You need to replace the H2 tags that normally surround the Post Title (a.k.a. <strong>the_title()</strong>) with the following:</p>
<pre name="code" class="php">
&lt;?php echo (is_single()) ? &quot;h1&quot; : &quot;h2&quot;; ?&gt;
</pre>
<p>This is usually in the index.php file, unless you have a template page specifically for single posts, in which case it will be in &#8220;single.php&#8221; (and then, you could probably just put &#8220;H1&#8243;, as this template will only be used for the Single Post pages).</p>
<p>So, you might have something that looks like the following now:</p>
<pre name="code" class="php">
&lt;&lt;?php echo (is_single()) ? &quot;h1&quot; : &quot;h2&quot;; ?&gt; class=&quot;title&quot;&gt;
    &lt;a id=&quot;post-&lt;?php the_ID(); ?&gt;&quot; href=&quot;&lt;?php the_permalink(); ?&gt;&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link to &lt;?php the_title(); ?&gt;&quot;&gt;
        &lt;?php the_title(); ?&gt;
    &lt;/a&gt;
&lt;/&lt;?php echo (is_single()) ? &quot;h1&quot; : &quot;h2&quot;; ?&gt;&gt;
</pre>
<h4>CSS Styling your titles</h4>
<p>If you&#8217;re using a theme designed by somebody else, it might not be as simple as just replacing the H1/H2 tags with the above code, because you might find that the H1 tag has it&#8217;s own specific style, as opposed to the Blog Title/Name having a style class.</p>
<p>Now, I&#8217;m no designer, so this might not be the best advice, but here&#8217;s what I&#8217;ve done to work around it.</p>
<p>In the H1 tag (well, the Blog Name tag as it stands after the changes above) you can see I added a <strong>class=&#8221;blog_title&#8221;</strong>. And in my style.css file, I changed all the references to &#8220;<strong>H1</strong>&#8221; to &#8220;<strong>.blog_title</strong>&#8220;.</p>
<p>I hope this makes sense. Let me know if you agree or disagree with me.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geniosity.co.za/musings/wordpress/wordpress-seo-title-tag-for-theme-designers/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Install WordPress on your Windows Machine</title>
		<link>http://www.geniosity.co.za/musings/wordpress/install-wordpress-on-your-windows-machine/</link>
		<comments>http://www.geniosity.co.za/musings/wordpress/install-wordpress-on-your-windows-machine/#comments</comments>
		<pubDate>Sun, 17 Feb 2008 18:14:03 +0000</pubDate>
		<dc:creator>james</dc:creator>
				<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.geniosity.co.za/musings/wordpress/install-wordpress-on-your-windows-machine/</guid>
		<description><![CDATA[Whether you downloaded WordPress 2.5 or you would just like to test your theme or plugin on your own machine before uploading it to your site, I feel having an instance of WordPress running on your machine is a must.

Anyway, I’m sure there are quite a few tutorials for this out there, but I’ll write it here for my own reference, as well as yours…]]></description>
			<content:encoded><![CDATA[<p>Whether you <a href="http://www.geniosity.co.za/musings/wordpress/try-out-wordpress-25/">downloaded WordPress 2.5</a> or you would just like to test your theme or plugin on your own machine before uploading it to your site, I feel having an instance of WordPress running on your machine is a must.</p>
<p>Anyway, I&#8217;m sure there are quite a few tutorials for this out there, but I&#8217;ll write it here for my own reference, as well as yours&#8230;</p>
<h3>Download WAMP</h3>
<p>WampServer, in short, lets you run a webserver and database (which obviously WordPress needs), on your Windows machine. If you&#8217;re lucky enough to be running Linux or an Apple OS, then you can skip this step.</p>
<p>So, anyway, go download <a href="http://www.wampserver.com/en/">WampServer</a>, install it, and you can accept all the default installation settings.</p>
<p>It should install to &#8220;c:\wamp&#8221;, which makes things nice an easy. If it doesn&#8217;t install there, just make a note of where you DO install it&#8230;</p>
<p>Once it&#8217;s installed, start it by clicking the shortcut. You should see that it&#8217;s running by the icon in your task bar next to the time, as seen in the screen shot below:</p>
<p><img src="http://www.geniosity.co.za/genwp/wp-content/uploads/2008/02/wampserver-running-icon.jpg" alt="The icon when WampServer is running" /></p>
<h3>Create a Database for WordPress</h3>
<p>We&#8217;ll use <strong>phpMyAdmin</strong> for this step, which is a a Database (DB) admin tool that comes with WampServer.</p>
<p>Click on the icon that I showed you above and you should see the following menu:</p>
<p><img src="http://www.geniosity.co.za/genwp/wp-content/uploads/2008/02/wampserver-phpmyadmin.png" alt="phpMyAdmin option on the WampServer meny" /></p>
<p>Click the &#8220;phpMyAdmin&#8221; option to open the application up in a new browser window.</p>
<p>In the window that opens, click on the &#8220;Add a new User&#8221; link, as shown in the screen shot below:</p>
<p><img src="http://www.geniosity.co.za/genwp/wp-content/uploads/2008/02/wampserver-phpmyadmin-add-user-1.png" alt="using phpMyAdmin to create a database and user for WordPress" /></p>
<p>On the next screen, in the section &#8220;<strong>Add a new User</strong>&#8221; fill in the following information:</p>
<p>1 &#8211; A user/database name, like &#8220;<strong>wordpress25</strong>&#8221; (without the quotes)<br />
2 &#8211; Change the &#8220;drop down&#8221; to say local, and it should populate the field with the value &#8220;<strong>localhost</strong>&#8221;<br />
3 &#8211; Choose a password for your user to access the database, like &#8220;<strong>wp25</strong>&#8221;<br />
4 &#8211; Select &#8220;<strong>Create database with same name and grant all privileges</strong>&#8221;<br />
5 &#8211; At the bottom of the page, click on &#8220;<strong>Go</strong>&#8221;</p>
<p>You can use the following screen shot for guidance:</p>
<p><img src="http://www.geniosity.co.za/genwp/wp-content/uploads/2008/02/wampserver-phpmyadmin-add-user-2.png" alt="using phpMyAdmin to create a database and user for WordPress - 2" /></p>
<p>If this was successful, you should see the following screen:</p>
<p><img src="http://www.geniosity.co.za/genwp/wp-content/uploads/2008/02/wampserver-phpmyadmin-add-user-3.png" alt="using phpMyAdmin to create a database and user for WordPress - 3" /></p>
<h3>Download WordPress</h3>
<p>Now that your Database is setup, you just need a copy of WordPress to install. You could either <a href="http://www.geniosity.co.za/musings/wordpress/try-out-wordpress-25/">download a test version of WordPress 2.5</a>, or <a href="http://wordpress.org/download/">download the latest stable version of WordPress</a>.</p>
<p>You can save it in the WAMP directory (see the first section of this page) in the &#8220;<strong>www</strong>&#8221; directory. For example: &#8220;<strong>C:\wamp\www</strong>&#8221;</p>
<p>Then, just unzip it. If you downloaded the WordPress 2.5 copy from this site, then there should be a directory called &#8220;<strong>wp25</strong>&#8220;, otherwise it will create a directory called &#8220;<strong>wordpress</strong>&#8220;.</p>
<h3>Install WordPress</h3>
<p>Go into the directory, and edit the following file with notepad (or any text editor): &#8220;<strong>wp-config-sample.php</strong>&#8220;.</p>
<p>Replace the following &#8220;words&#8221; with the ones you used above in when creating the database:</p>
<p>putyourdbnamehere -&gt; <strong>wordpress25</strong><br />
usernamehere -&gt; <strong>wordpress25</strong><br />
yourpasswordhere -&gt; <strong>wp25</strong></p>
<p>If you look at the file, the 3 lines you changed should look like the following (I made the changes bold for ease of reference):</p>
<blockquote><p>define(&#8216;DB_NAME&#8217;, &#8216;<strong>wordpress25</strong>&#8216;);    // The name of the database<br />
define(&#8216;DB_USER&#8217;, &#8216;<strong>wordpress25</strong>&#8216;);     // Your MySQL username<br />
define(&#8216;DB_PASSWORD&#8217;, &#8216;<strong>wp25</strong>&#8216;); // &#8230;and password</p></blockquote>
<p>Then save the file as &#8220;<strong>wp-config.php</strong>&#8220;. Note that you took out &#8220;<strong>-sample</strong>&#8221; from the file name. You can do this by clicking on &#8220;File&#8221; then &#8220;Save As&#8230;&#8221; and taking out &#8220;<strong>-sample</strong>&#8221; from the file name.</p>
<h3>Logging into your new WordPress Installation</h3>
<p>In your browser, you will now go to the WordPress installation page by going to the following URL/link:</p>
<p><a href="http://localhost/wordpress25">http://localhost/wordpress25</a></p>
<p>If you&#8217;ve been doing everything above while you read, then you should just be able to click the link and you&#8217;ll see the following screen (though the screen below is from a WordPress 2.3 installation):</p>
<p><img src="http://www.geniosity.co.za/genwp/wp-content/uploads/2008/02/wordpress-installation-screen.png" alt="WordPress Installation Screen" /></p>
<p>Just enter a blog title, like &#8220;Local WordPress Test&#8221;, enter an email address (not that you will really need it to be real) and click on &#8220;Install WordPress&#8221;.</p>
<p>You should see the following screen:</p>
<p><img src="http://www.geniosity.co.za/genwp/wp-content/uploads/2008/02/wordpress-installation-success.png" alt="Successful WordPress Installation Screen" /></p>
<p>And, you should have a working copy of WordPress on your Windows Machine.</p>
<p>Just a note, make sure you <strong>write down the password</strong> that you are shown (or change it straight away in the admin section of WordPress). You won&#8217;t be able to recover a lost password via email (without a bit more hard work)&#8230;</p>
<p>I really hope this has helped you in some way. If it has, let me know.</p>
<p>And, if you have any questions, let me know as well!</p>
<p><strong>UPDATE</strong>:</p>
<p>Shane left a link to his video on this process in the comments below. Here&#8217;s his video, which I think is excellent because of how thorough it is.</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="349" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="src" value="http://www.youtube.com/v/biQWyBcYSX4&amp;hl=en&amp;fs=1&amp;rel=0&amp;color1=0x006699&amp;color2=0x54abd6&amp;border=1" /><embed type="application/x-shockwave-flash" width="425" height="349" src="http://www.youtube.com/v/biQWyBcYSX4&amp;hl=en&amp;fs=1&amp;rel=0&amp;color1=0x006699&amp;color2=0x54abd6&amp;border=1" allowfullscreen="true"></embed></object></p>
<p><strong>Another Update</strong>:</p>
<p>I was contacted by Hendry from <a href="http://blogbuildingu.com/" target="_blank">blogbuildingu.com</a> saying he had a tutorial for installing WP under nginx on your windows machine. Here&#8217;s what he had to say:</p>
<blockquote><p>Recently, I&#8217;ve written a tutorial on how to install WP under Nginx, soon lighttpd and other options as well, including virtual machines.</p>
<p>The benefit is, nginx only takes 2MB of computer memory, which is much more friendly for desktop environment.</p></blockquote>
<p>Go check out the article here: <a href="http://blogbuildingu.com/wordpress/install-wordpress-wemp" target="_blank">http://blogbuildingu.com/wordpress/install-wordpress-wemp</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.geniosity.co.za/musings/wordpress/install-wordpress-on-your-windows-machine/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>

