Import a single wordpress node with backupbuddy plugin export without unzip

I recently tried to import a single node of a wordpress network (multisite) install via the experimental single node export with iThemes Backupbuddy plugin. The version the site had of the plugin was version 4.0.2.1. Now, I realise this is now not the most recent version of the plugin with it now being at 5.* but i’d imagine this could still be useful to a few.

Although perhaps not common, there may come a time when you want to export a single wordpress node and integrate it with another wordpress network install. Backupbuddy can help with this.

Backupbuddy can’t unzip archive

I thought it would be dead easy until I got this message. For some reason despite the server having the correct extensions installed for ZipArchive, Backupbuddy would not use them.

The solution

Take a full backup from the originating site. Move the zip into the webroot of your target server/wordpress install. Look for the random string appended to the end of the zip. It should look something like this

export-h81wb4jupm.zip

You are interested in this h81wb4jupm

Next ensure the directory structure below exists

mkdir -p wp-content/uploads/backupbuddy_temp/import_h81wb4jupm

Again note the matching h81wb4jupm

Next we want to unzip the export-h81wb4jupm.zip which can now be found at the webroot (because you put it there)

A straight forward unzip will create the files in your root directory, which is less than desirable. So you should use something like below to unzip to destination.

unzip export-h81wb4jupm.zip -d wp-content/uploads/backupbuddy_temp/import_h81wb4jupm/

It’s imperative the unzip is dumped into this location.

Now head to the wordpress network dashboard and click “MS Import Beta”.

Select the zip with the h81wb4jupm.zip extension

Then from the advanced settings just below, tick on the “Skip zip file extraction”. This will stop Backupbuddy attempting to use the un-archiving tools that it cannot find and instead attempt to look for your import which is already in wp-content/uploads/backupbuddy_temp/import_h81wb4jup/

At step 3 you should now see a line of output containing

"Skipping file extraction based on advanced settings."

Then you can follow the 8 steps to importing by just clicking through and reading the import outputs as usual. If your import has a particularly large amount of posts or database then backupbuddy will take a while to complete. If your backup is v.large backupbuddy is not the tool for you.

Wordcamp 2013 Lancaster – my thoughts

Having just returned from Wordcamp Lancaster 2013, I thought what better time to write a quick round up of how I felt the weekend went than now. Having previously been to Wordcamp Portsmouth 2011 I was keen to make up for missing 2012’s Edinburgh event. I hope by providing some feedback and some relevant information to those who didn’t attend this years event in Lancaster it might help them make decisions about going in the future.

I’ve decided to break the review down into the following areas; Location, Venue, Hotel, Range/Quality of talks, Workshops and Social.

Location

Lancaster was chosen for the location of the premier UK WordPress developer event of 2013 (although it is rumoured they are also having a London based event in the winter hush, hush), affectionately (as always) dubbed Wordcamp 2013. Lancaster itself is a pretty quaint northern city with a huge University presence but when uni’s out for the summer it’s pretty quiet. Lancaster was a difficult venue to travel to for a Londoner like me, though it does have reasonable travel links via Virgin trains from London Euston. On a friday night a direct train to Glasgow stops at Lancaster without needing a change (bonus!). This is a slightly different story on a Sunday evening however, a 4 hour train ride with a change at Manchester Picadilly is what your looking to get you back to London Euston.

Venue

Lancaster university was the event venue, I couldn’t fault this. Perfect location and a nice university campus with alot of new buildings. The lecture theatres were perfectly fit for purpose. Though it was a little difficult to find the relevant area of the campus that the event was taking part in. There was some hot and cold food provided at lunch time which was a nice touch, seems as you had very little choice for alternatives.

Hotel

We stayed in the Lancaster House Hotel. This was awesome! Nicest hotel in Lancaster (apparently) certainly seemed pretty good. Great breakfast, good rooms, even better showers and a nice array of other facilities such as swimming pool, sauna and gym.

Range & Quality of talks

I like to measure the quality of an event by the amount of tangible things I walk away with, against what it costs me to be there. This years Wordcamp 2013 for me didn’t quite live up to my expectations. Despite it’s extraordinarily cheap event ticket prices (just £25 if you grab an early bird ticket) being in Lancaster I had to chuck another £300 just for travel, accommodation and food costs. I use WordPress professionally week in week out and I go to be involved in the community and learn a few things myself while i’m at it. This year I struggled to identify one tangible thing that I could look back on and say that i’ve added x to my armoury this year.

Range of talks

The good: There was a reasonable range of talks (at least in title), most of the talks were high level talks which applied to a wide range of event goers. Most of the content covered in the talks was easy going (with a few exceptions) and there was plenty of room for event goers to ask questions at the end of talks with little objection. I felt that all those giving talks did so with good delivery, well spoken and capable of answering questions to a good level at the close of the talks.

The bad: Most talks lacked relevancy to WordPress or relevancy to real life application when using WordPress, which in my mind makes it difficult for event goers to put talks into context or convert to something tangible. There was a big lack of advanced subject matter / Workshops for heavy WordPress developers to truly geek it up at the entire event. Some talks were even outright boring mainly due to their lack of relevancy or loop back to reality from theory.

Quality of talks

The quality of talks for me this year was lacking in content more so than it was speakers. I thought each of the speakers were more than capable of presenting. I just thought the talks lost focus on the audience being able to have an “aha” moment! To me alot of the talks lacked a little bit of finesse and very few added real value back to the advanced WordPress event goer. I guess I normally also expect the talkers to be those pushing WordPress to the limits or having particular expertise in certain areas of WordPress. Indeed that is at least where i’m personally likely to learn the most. This year felt like alot of speakers first talks and some of the talks came across asif the speaker hadn’t truly mastered his/her subject matter in real life situations, before giving it.

It may sound a bit harsh, and it probably is, besides, it’s always easier to sit in the audience goading the speaker, than it is to be the speaker, right!?

Workshops

There wasn’t really any. Nothing hands on anyway. Bit disappointing personally for me, though I do understand they add an extra layer of complexity to proceedings.

Social

Events and conferences alike are always good places to go and meet people working in similar fields to you. Usually you’ll find lots of friendly people and this year was no exception. There was even a social drink up in Lancaster town in the evening on Saturday night.

Will I be going again?

Probably. I guess I wouldn’t be writing this post if I didn’t want someone to read it and make it better next year.

Install WordPress From Mac Os X terminal bash/shell/terminal profile function

Sometimes staying on top of the latest version of WordPress can be quite annoying when your testing things locally or rolling out regular wordpress sites. I normally install with .svn but this is a neat little bash script function I threw together to grab the latest version of WordPress and unzip into the current directory through Mac OS X Terminal command.

Open up your

vim ~/.bash_profile

and paste the following code into it.

wp-install(){
	wget http://wordpress.org/latest.tar.gz;
 	tar xfz latest.tar.gz;
	mv wordpress/* ./;
	rmdir ./wordpress/;
	rm -f latest.tar.gz;
}

Now quit and re-open terminal or type ./profile for the changes to take effect.

CD into the desired directory and type wp-install and let magic behold you, you’ll shortly have the latest version of WordPress downloaded and installed.

Here’s to my new theme

As many of you will know when thinking about making your own portfolio website – it’s difficult to choose a theme and a concept or even make one that reflects you. I had the same problem, trust me.

One thing that really helped me get over this hurdle and get focused was looking at the problem I wanted it to solve, which for me was – creating a place for me to share my online life with others, and creating a place for me to continue to reference for years to come.

I realised that what I actually wanted it to be is a place for me, not a place for others to come and see me, in doing so I hope it will be mildly more interesting to the onlooker as it should now not only be a reflection of my thoughts / trials / tribulations but also reflects me and my personality.

Ultimately I decided that I needed this redesign to enable me to share various different types of media forms on my own blog. Formats such as tweets, blog posts, spotify embeds, pictures and links have all been taken into consideration.

Although i’m not quite done yet, i’m happy with the initial improvements (particularly the whizzy spinny logo, made purely in CSS3, nifty eh?).

For those interested:

The site is still backed by WordPress & HTML5 boilerplate.

I plan on making some more additions to the site in the near future.

How to get the wordpress posts parent page information out

In many cases when your working with WordPress you’ll want to assign a specific page template to become the static page. Usually replacing the homepage with a static page as well.

You can do this in WordPress -> settings -> reading.

When you set say ‘Latest News’ to be your posts page you may want to get that out at the top of the loop.

Unfortunately in some cases, you might also just settle with the default template for your Latest News page (index.php) which can make things a little more annoying.

WordPress will fill the loop with your posts rather than information about your page. Making the title of the page unavailable. This little useful snippet of code will help you overwrite that.

<div id="title">
<?php $your_title = get_the_title( get_option('page_for_posts', true) ); ?>
<h1><?= $your_title; ?></h1>
</div>

How to change the default from wordpress email from address

Sometimes you might want to stop WordPress sending emails with the default WordPress email from address.

Usually something like wordpress@domain.com

Often displayed like so: WordPress wordpress@domain.com

There are a few plugins available to achieve this, but personally I don’t relying heavily on WordPress plugins – mainly because dependencies on too many third parties can be annoying.

Particularly when there is not much code needed to achieve the change.

Add the following code to your functions.php file.

add_filter('wp_mail_from', 'replacement_mail_from');
add_filter('wp_mail_from_name', 'replacement_mail_from_name');
function replacement_mail_from($old) {
 return 'your email address';
}
function replacement_mail_from_name($old) {
 return 'your name or your website';
}

What tables does wordpress multisite create

Just in case you ever needed to know or ever wondered what tables wordpress multisite creates in your database when you activate your network i’ve compiled the small list below.

WordPress multisite tables

  • wp_1_categories
  • wp_1_comments
  • wp_1_link2cat
  • wp_1_links
  • wp_1_options
  • wp_1_post2cat
  • wp_1_postmeta
  • wp_1_posts
  • wp_blogs
  • wp_blog_versions
  • wp_registration_log
  • wp_signups
  • wp_site
  • wp_sitecategories
  • wp_sitemeta

How To Setup WordPress MU in MAMP on Mac OS X

Again, as is often quite a common occurence on my blog, i’m again blogging something that I think me and my team will find useful in the future. This time it’s setting up a WordPress MU installation on OS X using MAMP.

We needed a WordPress Multisite install locally so that we could test flexibly, privately, and securely throughout the development process for a new project. It’s definitely worth the effort especially if you – like us love developing locally.

Things you’ll need

  • Terminal
  • Editor – vim, nano, mate
  • MAMP installed

Getting started

First lets create a site in /Applications/MAMP/htdocs/ – call it mutest

mkdir mutest
cd mutest

Now checkout wordpress with your favourite version control (we use subversion).

svn co http://core.svn.wordpress.org/tags/3.3.2 .

You’ll see it checking out wordpress now – when it’s done navigate to localhost:8888/mutest/ and complete the WordPress installation, i’m going to assume your competent with installing it normally.

Now open up the MAMP portal and perform the following.

Now go to Ports and change the default port from 8888 to 80 – once you do this mamp will restart and probably prompt you for your admin password.

We’re going to use the subdomain mapping for wordpress rather than the subfolder so next we need to edit the /etc/hosts file (which is on your mac).

I use textmate with the terminal hook, so I fire up terminal and run a command like so.

mate /etc/hosts

You could run vim or any other terminal editor if you like.

Add two new example domains to the hosts file (you will probably add more in the future but two will do for now).

example.site.com
example1.site.com

Save and exit.

Edit your Apache vhosts config file

Open /Applications/MAMP/conf/apache/httpd.conf in a text editor and scroll down to the line that says “#NameVirtualHost *”. Replace that line with the following code:

NameVirtualHost *
<virtualHost *>
 ServerName example.site.com
 ServerAlias example.site.com *.example.site.com
 DocumentRoot "/Applications/MAMP/htdocs/mutest"
 <directory "/Applications/MAMP/htdocs/mutest">
  Options Indexes FollowSymLinks Includes
  AllowOverride All
  Order allow,deny
  Allow from all
 </directory>
</virtualHost>

Save and restart mamp server.

Configuring WordPress MU

WordPress Multisite is really easy to configure just start by adding the following to your wp-config.php file.

define('WP_ALLOW_MULTISITE', true);

Once you’ve done this head to wp-admin backpanel and then look for the submenu ‘Tools’ and click Network.

On this page you will now see an option to use sub-domains for your site addresses. Make sure that’s selected, check the other details, and then click the “Install” button to make it happen. Note that you’ll see a warning message that says, “Wildcard DNS may not be configured correctly!” – we can ignore this warning because we know our DNS is correct.

Finally, complete the steps outlined there on the “Enabling the Network” page (i.e., create a blogs.dir folder and add the required code snippets to your .htaccess etc). After that, re-login to the Admin area and go to Network Admin > Sites > Add New to begin adding your sub-domain network sites.

Your done! It’s all over. Your now rocking a nice little wordpress multisite setup locally. Good job. Grab a coffee and get coding!