Professional Documents
Culture Documents
PRESENTS
Xxxxxx
Xxxxxxxxxx
Future Publishing Limited 2013. All rights reserved. No part of this magazine may be
used or reproduced without the written permission of the publisher. Future Publishing
Limited (company number 2008885) is registered in England and Wales. The registered
office of Future Publishing Limited is at Beauford Court, 30 Monmouth Street, Bath BA1
2BW. All information contained in this magazine is for information only and is, as far as
we are aware, correct at the time of going to press. Future cannot accept any
responsibility for errors or inaccuracies in such information. Readers are advised to
contact manufacturers and retailers directly with regard to the price of products/
services referred to in this magazine. If you submit unsolicited material to us, you
automatically grant Future a licence to publish your submission in whole or in part in all
editions of the magazine, including licensed editions worldwide and in any physical or
digital format throughout the world. Any material you submit is sent at your risk and,
although every care is taken, neither Future nor its employees, agents or
subcontractors shall be liable for loss or damage.
Contents
Contents
Page 26
Page 06
Page 42
Page 46
Page 66
Page 30
Contents
Page 84
Page 90
Getting started/tips
Tutorials
12
40 brilliant WP tutorials
38
20 portfolio themes
Backend skills
42
Advanced WP techniques
WordPress e-commerce
20 WordPress mistakes
And myths, and misgivings
84
An amazing showcase
90
52
56
Multilingual WordPress
26
Futureproof WordPress
Responsive WP masterclass
80
Expert tips
70
Showcase
11 awesome resources
The best online resources
58
62
66
cessibilit
tion Ac
rna
tion
alisa
Int
e
er
ce
G
gl
e
ss
G
SS
LE
ES
PL
G
P
ap
str
ot
Bo
TM
eH
scap
ts Ic
oMo
on
k
Moon In
Ink
s ca
pe
G
SV
o
Script Roots Ic
HT
ML
5B
oil
er
p
at
a
oo
Yo
a
Sa
Sa
ss
L
Java
SVG CSS
Sc
he
ma
a
em
tstrap
h
Sc
B oo
te
la
a
mp
o
C
o
sW
m
om
C
o
ok
PL
o
eb
ac
rF
tte
Twi
SG
ES
ok
tS
EO
T
SS GPL Bootstrap
S
E
w
V
G
itt
CSS
ss L
e
a
r
S
Face
Ja
book Schema
Script
CSS Java
p SVG
ipt
tstra
Scr
Boo
ava
SJ
CS
sL
itte
Tw
S i
tR
oo
SV
CSS J
oM
oo
n
In
k
sc
ap
e
ss W
ooC
om
me
rce
Inte
rn
r
Sc
a
v
mmer
s WooCo
avaS
SS J
GC
ipt
o
Ro
ts
ts Ico
cript Roo
ation
oast SE
O Twitt
er Fa
e HT
scap
k
n
I
n
Moo
Ico
erplate Co
ML5 Boil
GP
ss L
ESS
a Sa
SV
trap
s
tionali
t e r na
VG
CS
aS
av
J
S
crip
cebo
ok S c
oast SEO Twitte
he m
r Faceb
a Sa
ook S
gle GPL Bo
ss L
chem
otstrap
Yo
a
S
V
S
G
ass
as
CSS
J av a
L ES
tS
Scrip
SG
EO
t Ro
PL
Tw
ot s
Bo
I co
itt
Mo
er
on
Fa
Ink
ce
sc
bo
ap
ok
e
HT
Sc
he
ma
Sa
ss
LES
SG
PL B
ootstr
ap SVG
CSS
L5
M
aSc
o ok S
Faceb
r
e
t
t
i
w
EO T
oast S
ogle Y
ra
p
Compas
atio
e In
merc
Com
Woo
s
s
a
p
CS
S
Ja
PL
Bo
va
Ja
S J av
G CS
V
S
p
LB
oo
tst
TML5 Boilerplate
pS
tra
s
t
o
S
CS
Tw
tern
erce In
as WooComm
Ic
EO
tS
em
tr a
ts
oo
eb
ch
kS
eH
Ro
o
c
Fa
as
Yo
e
l
g
p
sca
nk
nI
pt
Ic
o
ebo
Yoast S
EO Twitter Fac
as
Ro
ots
O
st SE
Google Yoa
Getting started
Com
p
pe
HT
ML
5
rplate
tion
lisa
na
o
i
t
a
ern
iInt
sat
oots Ic
cript R
a Sas
Schem
e ss
Acc
a
ty S
ibili
ss
ks
In
M
oo
n
Ico
S
va
M
Ico
oo
B
TML5
a
tstr
oo
B
L
GP
SG
LE S
SV
in multilingual
web development
http://shannon-smith.ca
Image Mike Brennan
is art editor of .net
Ja
va
twitter.com/mike_
brennan01
ile
Bo
te
rpla
Sc
rip
tR
oo
ts
M
Ico
nk
c ri
pt
Ic
oM
ap
sc
rip
o
LB
GP
L5
TM
H
e
L5
e HTM
scap
Ink
oon
te Com
pass Wo
oots Ic
oMoon Inkscape HTML5 Boilerpl
Ja
va
S
nI
oo
co M
SS
ili
sib
CS
S
ts
oo
tR
at
L
ss
Sa
i on
nte
s
oot
ce R
mer
m
o
ooC
as s W
Comp
p
a
r
t
s
t
oo
S GPL B
Sass LES
ipt R
CS
S
eI
lis
es
cc
nA
tio
rap
ootst
PL B
5B
TML
pe H
as
mp
Co
llate
p
r
le
i
rc
me
om
oC
o
sW
na
tio
r na
alis
erpla
B o il
Bootstrap
LESS GPL
SV
ca
s
on Ink
IIcoMo
rap
mp
ate Co
5 Boilerpl
nkscape HTML
tra
ts
ESS GPL Boo
tion
rna
Inte
e
c
r
e
mm
ooCo
ass W
Sc
va
Ja
(www.cafenoirdesign.com),
SV
ssibility Sass L
nalisation Acce
merce Internatio
mpass WooCom
o
C
e
t
a
l
p
oiler
on I
vaScript Roots IcoMo
S S Ja
C
VG
pS
SG
PL
Bo
ots
t
SS
Ja
tR
rip
ts
oo
H
ape
ksc
n In
ibility
ation Access
Internationalis
WooCommerce
s
s
a
p
m
o
C
e
t
HTML5 Boilerpla
Design (@cafenoirdesign)
Getting started
oo
tst
ra
Ro
ots
ava
Sc
rip
t
CSS
J
p SV G
SG
PL
GPL Bootstra
G PL
SS
LE
SS
Sc
bo o k
e
e
c
a
nkscap
er F
oon I
M
o
witt
Ic
o ts
Ro
t
p
c ri
aS
LE S
M
HT
Bo
LE
nali
natio
Bo
ots
tra
tstr
ap S
VG CSS JavaScript Roots IcoMoon Inkscape HTML5 B
oile
oo
LB
GP
SS
LE
ss
ss
Sa
a
he m
Sa
pe
ca
L5
m
Co
te
pla
r
le
me
om
oC
o
sW
pa
R oo
ts Ic
oMoon
Inkscape HTML5 Boilerplate
L
ility HTM
ccessib
ation A
s
li
a
n
o
ternati
erce In
s Comm
Compas
t
crip
vaS
om
oon Ink
s IcoM
t
o
o
R
m er
ce I
nter
na
Getting started
tiona
ass G
NU PH
WordPress
P
lisatio
n Acc
essibilit
y
Lsites
ocalisation GlotPress
Roots IcoMoon Inkscape HTML5 Boilerplate Multilingual
vaScript
CSS Ja
VG
ress S and frameworks
tPThemes
o
l
G
n
satio
Graph (https://developers.facebook.com/
docs/opengraph) data just by filling in a
few fields. Other plug-ins exist for more specific
functions, like adding structured data to event and
real estate listings, or to recipes.
Another good plug-in is the Schema Creator
plug-in (http://wordpress.org/plugins/schemacreator). It allows you to insert Schema.org
microdata directly into WordPress pages and posts.
02
Boilerstrap
Boilerstrap (http://getboilerstrap.com) is an
open-source WordPress template based on
Twenty Twelve that comes with Bootstrap,
Font Awesome icons, and more.
Unported frameworks
HTML KickStart
This framework (www.99lime.com/elements),
which bills itself as ultraLean HTML5, CSS
and JavaScript building blocks for rapid
website production hasnt yet been ported to
a WordPress theme, but its so lean that it
could easily be integrated into a number of
starter themes.
Gravity
A Sass-based framework (http://
gravityframework.com) designed to build
powerful and easy-to-maintain HTML5
websites. Its designed for rapid prototyping,
but hasnt yet been ported to WordPress.
Genericons Genericons contains 94 embedded vector icons. Its licensed under the GNU General Public License (GPL) and
can be used with CSS effects to create user interface elements that are compatible across a range of devices
03
Accessibility team
The WordPress project now has an accessibility
team (http://make.wordpress.org/accessibility)
which is working to make the WordPress core
more accessible.
The team has made suggestions for
improvements to the WordPress UI and has been
submitting tickets to help get changes into
WordPress 3.6 and 3.7. The team is compiling a
list of resources and testing tools (http://make.
wordpress.org/accessibility/useful-tools/) as well
as planning coding and styling guidelines for
accessible sites, a formal outreach effort for
developers, and working on a global accessibility
statement for WordPress.
Accessibility plug-ins
mm
er
ce
In
rn
make.wordpress.org/themes/guidelines/
guidelines-accessibility) that any developer
should be able to incorporate into a theme with
minimal effort. For example, developers are
advised to include informative alt text, to
prevent repetition of link text (such as the
default Read more links), to check colour
contrast and take several other measures. The
idea is to make themes easier to use for people
with visual impairments as well as for those
using text readers and keyboard navigation.
The WordPress codex has additional
information (http://codex.wordpress.org/
Accessibility) along with some examples. The
review guidelines are an optional step in the
official theme accessibility audit for themes
submitted to the WordPress.org theme
repository. Its probably best to think of this as a
standardised process to ensure your theme has
bare-bones accessibility.
Themes submitted to the directory that pass
the audit will get an accessibility-ready tag that
will help people find those themes. The
accessibility audit is currently a draft proposal.
te
t
crip
vaS
om
oon Ink
s IcoM
t
o
o
R
Getting started
SVG
t
n Glo
satio
m er
ce I
nter
na
tiona
ass G
NU PH
WordPress
P
lisatio
n Acc
essibilit
y
Lsites
ocalisation GlotPress
Roots IcoMoon Inkscape HTML5 Boilerplate Multilingual
vaScript
CSS Ja
Internationalisation purposes Plain text strings from the 404 error page are wrapped in WordPress-defined PHP functions
10
Choosing an app
More information
l Getting Started with Sass (http://alistapart.
com/article/getting-started-with-sass)
l Using the LESS CSS Preprocessor for Smarter
Style Sheets (http://coding.smashingmagazine.
com/2010/12/06/using-the-less-css-preprocessorfor-smarter-style-sheets)
l HOW TO: Get Started With the COMPASS CSS
Framework (http://mashable.com/2011/06/14/
compass-css-guide)
l Setting Up CodeKit for Sass (http://netm.ag/
unmatched-247)
te
rn
General resources
l WordPress theme review
(http://codex.wordpress.org/Theme_Review)
l WordPress plug-in guidelines
(http://wordpress.org/plugins/about/
guidelines/)
Text domain The Twenty Twelve WordPress theme uses the text domain twentytwelve, declared in the functions.php file
POT file A translator can view a POT file and translate each string of text using software like Poedit (www.poedit.net)
Getting started
WordPress resources
11 awesome
WordPress resources
Want to get started in WordPress? Or simply hone your skills? Then check out these
high-quality online resources, where you'll find loads of advice and inspiration
The web is a wonderful thing, brimming with
resources and tutorials for people wanting to
learn about the world of WordPress. But,
sometimes, too much choice can be confusing,
so we've picked 10 top sites that will help you
get to grips with the open source CMS.
WordPress.org
01 What
better place to learn about
WordPress than from its own site and the
developers behind it? At WordPress.org you
can not only download the software but learn
the history behind the CMS, get access to
popular themes and plug-ins and of course,
engage in active forums with other dedicated
WordPress users.
02 Learn.WordPress.com
Similarly, if you're looking for a checklist
and step-by-step approach to getting started
with WordPress, check out the excellent learn.
wordpress.com. Guiding you through common
tasks from the basics to learning the lingo
it's an essential bookmark.
03 CreativeBloq.com
Creative Bloq and our own site at net.
creativebloq.com has a wealth of WordPress
advice, news and tutorials. Aimed at users of
all skill levels, here you can learn all sorts of
WordPress skills, as well as read advice and
information on the software from industry
experts (and it's constantly updated!).
04 WooThemes.com
Back in 2008, three WordPress
enthusiasts, from three different countries met
online and decided to set up theme and plugin provider WooThemes. Now an international
team of designers and developers catering for
hundreds of thousands of users, WooThemes
12
05 Lynda.com
Husband and wife Bruce Heavin and Lynda
Weinman have built up an extensive tutorial
video library over the past few years. And
WordPress has it's own dedicated section,
offering a wealth of training in the software for
all skill levels. You can follow some of the
tutorials on Lynda for free, but for full access a
paid subscription is required.
06 WPBeginner.com
WPBeginner is a brilliant resource for
anyone who's interested in WordPress but isn't
quite sure where to start. Founded in July 2009
WPKube.com
07 WPKube
is a WordPress resource site
which focuses on a wide scope of WordPressrelated areas and publishes compilations of
themes, plug-ins, tools, tutorials on WordPress
digwp.com
08 Set
up by Chris Coyier and Jeff Starr,
Digging into WordPress (or digwp.com) is the
blogging home for the upcoming book of the
same name. Books and blogs are the perfect
complement to each other when it comes to
learning web technologies. The blog is there
for searchability, quick tips, and copy and
pastable code, whilst the book can be there
for your reference.
net.tutsplus.com
09 Nettuts+
is a site aimed at web developers
and designers offering tutorials and articles on
technologies, skills and techniques to improve
how you design and build websites. Also
covering HTML, CSS, JavaScript, CMS, PHP
and Ruby on Rails, the site offers an array of
WordPress tutorials, tips and tricks.
10 Smashingmagazine.com
This addition to the list was a complete
no-brainer, as Smashing Magazine is known as
one of the best resources for tutorials and tips
for web designers. Founded in September 2006,
the online magazine delivers lots of useful and
authoritative articles on WordPress.
Speckyboy.com
11 Speckyboy
design magazine is a web and
graphic design blog run by Paul Andrew.
Launched in October 2007, the site has since
grown into a brilliant resource for designers.
With over 500 articles on WordPress training,
tricks and advice, you're sure to find something
useful here. l
Getting started
01
02
04
WordPress resources
03
05
07
06
09
08
10
11
Getting started
01
02
The 10 best
(free) WP
plug-ins for
designers
Arguably, one of the reasons WordPress is so
popular is that it happily supports templating
and plug-ins, making it highly flexible and
customisable to suit different website needs.
This flexibility, alongside the platforms huge
popularity, means theres thousands of free
plug-ins available on the web.
That's the good news. The bad news is that
sorting the wheat from the chaff can be a real
challenge. So here, weve chosen 10 of the best
WordPress plug-ins to add functionality to your
website and as the icing on the cake, they are
all available free of charge!
BuddyPress
01 BuddyPress
is a social media platform in a
box. Building on top of the WordPress system, it
allows you to register, maintain a list of friends,
@message other users, create groups of
common interests and host your own forums.
BuddyPress itself is also extendable, enabling
you to further increase its functionality to
include document upload, integration with other
social media streams, create membership-only
websites and much more. If youre looking for a
user-led or project-based system that encourages
collaboration and interaction between visitors to
your site, BuddyPress is an ideal solution. We
think it is one of, if not the, best WordPress
plug-ins for social networking.
www.buddypress.org
14
WP e-Commerce
02 WP
e-Commerce turns your WordPress
website into a fully featured ecommerce store,
complete with built-in connection to (and
integration with) many major Payment Service
Providers (PSPs).
The system enables you to upload products
into different categories and offers customers a
shopping cart system to enable them to build an
order. It handles calculation of shipping, payment
capture and all the email confirmations
associated with buying and selling on the web.
The plug-in is free, and while you can buy
additional upgrades to the system, its open
source just like WordPress so its perfectly
possible to extend the carts functionality yourself.
It's for these reasons that many champion it as
the best WordPress plugin for ecommerce.
www.wordpress.org/plugins/wp-e-commerce
03 IfVimeography
youre a film-maker or someone who
handles video on a regular basis, youll know it
can be tricky to display your film content
beautifully without resorting to manual hacks
around embedding content. Vimeo users can take
advantage of the Vimeography WordPress plug-in
to create and display fantastic-looking galleries of
video content all orientated around displaying
nicely within your WordPress site. Multiple
03
04
05
galleries of content can be created, and are
inserted into posts or pages using the standard
WordPress shortcode system.
Vimeography is arguably the best WordPress
plug-in for video. However, it's important to note
that it only supports content from Vimeo. And
that's not likely to change soon because the
developer believes Vimeo is the best platform to
displaying portfolio-quality content (ie without
advertising or unnecessary platform branding).
www.vimeography.com
Getting started
07
10
06
08
09
SlideDeck
05 SlideDeck
enables you to create customised
08 JetPack
JetPack brings some of the functionality of
07 WPTouch
If you're looking for a mobile skin solution,
WPTouch is probably the best WordPress plug-in
Days
06 Seven
This is a handy WordPress plug-in that
enables you to activate or deactivate widgets used
on your site based on the day of the week. This is
ideal for any scenario where the day is important to
the content being displayed, such as a restaurant
that wants to show daily specials or changes in
menus, a school displaying timetable information
Price Table
09 Want
to create interactive pricing tables?
Then this is the plug-in for you. It offers a simple
drag-and-drop solution, inserting the tables directly
into your page content.
The system offers a straightforward solution to
editing price table content, without the need to
understand the underlying HTML and CSS making
it ideal for websites being maintained by nontechnical users.
www.wordpress.org/plugins/pricing-table
NextGen Gallery
10 This
plug-in offers a great deal of flexibility in
creating gallery content, including the ability to
watermark images, create slideshows, organise
content into albums and use different themes for
display of your images. Top stuff.
www.wordpress.org/plugins/nextgen-gallery l
Expert tips
12 ways to secure
your WordPress site
Some simple housekeeping can make a world of difference to the likelihood of your
site getting hacked. Kim Crawley security author for InfoSec Institute has the tricks.
WordPress is the most popular content
management system (CMS) on the web.
Developed with PHP, and powered by
mySQL databases, WordPress is used by
an astonishing 8.5 per cent of all websites.
Web-delivered malware and website
cracking are becoming increasingly common,
and with such a large percentage of web
content using WordPress as a CMS, any security
vulnerabilities in WordPress' coding or
framework could affect millions of websites.
In this article we are going to look at how
you can best protect your WordPress site from
malware and cracking, without having an
in-depth knowledge of security.
your overall
01 Audit
workstation security
First of all, make sure that any and all PCs and
web servers you use are kept properly secure.
Make sure you're running the most recent
release of your favourite web browser, and
make sure that it's set to automatically patch.
Do the same with your antivirus software and
operating systems. Ensure all authentication
vectors you use have secure passwords, which
are changed every so often. Scan your PCs and
bugs and
03 Report
vulnerabilities
If you ever discover security vulnerabilities on
your own, do the community a favour by sending
a detailed email to security@wordpress.org. If the
vulnerability is in a plug-in instead, email
plugins@wordpress.org. You would want other
web developers to report loopholes that may
affect your website, so treat others as you would
like to be treated! Just avoid writing about those
newly discovered vulnerabilities on the web or on
social networking sites, so that information
doesn't fall into the wrong hands.
custom HTML
05 Disable
when possible
WordPress can use custom HTML for various
functions. If that isn't absolutely necessary for the
form and function of your website, you may want
to disable unfiltered HTML by adding the
following to your wp-config.php file:
define( 'DISALLOW_UNFILTERED_HTML', true );
16
Expert tips
Reporting bugs and vulnerabilities can benefit both you and the WordPress community (see tip 3).
Running Exploit Scanner every so often checks for indications of malicious activity (see tip 4).
indexes
07 Hide
Be sure to disable public access to indexes
whenever possible. If people can find the files in
your site's wp-content/plugins/ directory without
being authenticated, it's a lot easier to crack into
your site through plug-in vulnerabilities. If your
web server runs Apache or another OS that uses
.htaccess files, it's simple to do. Find the .htaccess
configuration file in your site's main directory.
That's the directory that contains index.php. Insert
the text Options -Indexes anywhere in the file.
Expert tips
it up!
08 Back
WP-DB Manager is excellent for backing up
your entire WordPress site, but it'll also alert you
to mySQL vulnerabilities and let you know when
parts of your database are publicly accessible.
Always be sure to properly back up the content
of your site. In a worst-case scenario, at least
keeping backups will allow you to easily restore
your site. With WP-DB Manager, you could also
use Online Backup for WordPress. The back up
the plug-in creates can be stored in your email
inbox or on your PC, or you can use the 100MB
of free storage space on developer Backup
Technology's own secure servers.
security plug-ins
09 Install
As well as the Exploit Scanner plug-in (see
tip 4) which you should run on your site every so
often to check for vulnerabilities and cracking
attempts, there are a number of other WordPress
plug-ins we recommend you install and use.
When used properly, they can harden your
WordPress site effectively.
With Exploit Scanner, you can also use WP
Security Scan. Not only will the plug-in look for
vulnerabilities, but it'll also give you specific
advice for blocking them.
To prevent cracks to find your login credentials,
be sure to encrypt your login packets with Login
Encryption. That plug-in uses both DEA and RSA
algorithms for enhanced security.
plug-ins from
10 Installing
the admin panel
Configure the Limit Login Attempts plug-in to
prevent brute-force attacks. With the plug-in, you
can set a maximum number of login attempts,
and also set the duration of lockouts in-between.
The User Locker plug-in works in a similar way.
With it, you can set a maximum number of invalid
authentication attempts before the account is
then locked.
There's also an excellent plug-in for securing
your entire admin panel. Try the Admin SSL Secure
Plug-in to encrypt your panel with SSL.
18
Installing other useful plug-ins can help protect your site further (see tip 11).
finally putting
12 And
everything together
Keeping your WordPress site hardened for
security is an ongoing responsibility, just like all
other areas of IT and development security. You
can't just configure a number of settings or
programs and then forget about it. Your
WordPress site should certainly be on a schedule
ON SALE NOW!
Getting started
Stay on trend
WordPress co-founder
on keeping up-to-date
WordPress co-founder Mike Little loves what designers do with the software
he helped invent. But, he tells David Crookes, they must keep up-to-date
Mike Little
Job Director, architect, developer, consultant
Company Zed1.com Limited
Web www.mikelittle.org
Dark alleys
WordPress is so changeable and developers work
to better it each year. Yet Little senses some
developers are failing to keep up and are sticking
to the tried-and-tested methods, even when it's
unnecessary. This causes them to fall into a trap of
getting something to work without having done it
20
the right way. And that can lead them down some
really dark alleys, Little says.
He highlights themes that create an extra box on
the Posts screen to add a URL of a thumbnail
image. WordPress has supported Featured Images
for several years now and I still see new themes
with that kind of functionality added to them.
Thats just ridiculous, he says.
He finds it a folly that a user, in such cases, has
to upload images separately before copying and
pasting the URL or the uploaded image and
sticking it in a box just to create a thumbnail for a
post. Yet people are still doing that because it was
the only way four or five years ago and theyve not
bothered to learn anything better.
So is that down to laziness? I think its laziness,
he answers. To me its a nonprofessional approach
to software development. I say that without
necessarily meaning it to be a bad thing because I
think most people working with WordPress are not
professional developers so they havent got that
discipline of trying to understand the right way to
do things. But, because what theyve done still
works, they carry on.
Skeleton themes
Little recommends that people who are building
and designing sites with WordPress look at some
of the skeleton themes that are out there such as
underscores rather than create a theme from
scratch. Or they can look at some of the
frameworks like Genesis Framework by StudioPress.
Using these mean you dont have to get into a lot
of PHP code and you can concentrate on the
styling and so on because theres a lot of
functionality straight out of the box.
For those who do want to create their own
themes, though, he has some specific advice: be
cautious about adding too much functionality to
the theme itself. One of the things that Im seeing
regularly, especially now Im doing training classes
Getting started
Concentrate on looks
Therefore, it's important for designers and theme
developers to concentrate less on packing stuff into
a template and more on the look of the theme and
the different platforms, whether that's mobile,
tablet or computer.
If an article
on how to do
something is
more than a year
old, its out of date
Yes, add features to do with presenting the
data in nice ways and all the rest of it, he says,
but dont be adding shopping baskets or contact
phones or anything like that in a theme. Such stuff
belongs to plug-in territory. It may seem like a
good idea to tie somebody into your theme but
you dont want to annoy them. The next time you
bring out an even better theme, your existing
customers cant change to it because theyve
invested so much in the original one.
The key, he says, is to follow the general
guidelines for WordPress themes, making sure that
up-to-date API calls are used. By doing things the
WordPress way, plug-ins can be used to make the
Exemplar themes
He points to the rich wealth of APIs and support
for building themes as well as plug-ins within
WordPress and says its just about getting to know
the software and learn what it can do. WordPress
default themes, he adds, are written to be
exemplar themes. They try and do everything
exactly the right way.
They even do some things that might be a little
over the top but to demonstrate the functionality
thats available in WordPress, Little says. It lets
you learn how to build these things and how to
compose so youre not duplicating code. It pulls all
your different pages, your different archives from
your loop files and all that kind of stuff.
But one of the problems is that developers will
inevitably lack the time to learn. With lots of clients
and a busy day, it can be difficult to keep up.
Maybe theyre more concerned with producing
new and prettier themes, he says. But you then
see the situation where you cant install a plug-in
that does something different with your post
thumbnails because youre not using the standard
WordPress API and so the plug-in cant change the
way your theme behaves. I think thats a shame.
It disappoints people because theyve picked a
theme that actually restricts what they can do.
I've seen themes where you install one of the
well-known SEO plug-ins, for example, and half
the stuff doesnt work because the theme is not
doing the right thing. Then people think the
plug-in is no good.
Genesis framework
Little comes at WordPress from a development
perspective and he likes to use the Genesis
Stay on trend
SUBSCRIBE TO
GREAT REASONS TO SUBSCRIBE
l
SAVE
Hand-picked jobs by Creative Bloq, the UKs fastest growing design community
JOBS SEARCH
Search at http://jobs.creativebloq.com
From the makers of
Tips
Expert tips:
Key WordPress skills
WordPress up to date
01 Keep
WordPress is extremely popular so
malicious individuals put a lot more work
into understanding its vulnerabilities and
weaknesses. This doesnt make WordPress less
secure than other CMSes, just more likely to be
attacked. Keeping your WordPress version up
to date will ensure you have the most current
security patches and leave you less vulnerable
to attack.
!= Administrator
02 Admin
The default Administrator Level User
is named admin. Set admin to Subscriber
Level access and create a new user with
Administrator Level access. People infiltrating
your account as a subscriber wont be able to
do much harm. Do not post content under an
Administrator account to further limit peoples
ability to guess your Administrator username.
Prefix
03 Table
In general, its important to remain as
unpredictable as possible. Continue to do
this by renaming your table prefix. By default
WordPress database tables start with wp_.
Since everyone knows this, its one less thing
to have to guess when hacking a database.
Change the table prefix in the wp-config file or
during installation.
content architecture
04 Define
Its important to plan out your content
architecture before filling WordPress with
posts and pages. For a blog I prefer to use
categories as general taxonomies such as
Articles, Tutorials, Interviews and so on. Then
I utilise tags to get more specific and tie posts
together. Example tags would be WordPress,
HTML5, and so on.
Since we can easily add Tags in menus the user
wouldnt necessarily recognise the difference
but now your content is better organised in
the admin.
and subscribing
05 Searching
Did you know that you can search within
specific categories? Did you know that you
can subscribe to specific categories as well?
If you plan out your site accordingly its easy
to turn categories into individual blogs using
this feature. http://domain.com/category/
articles/?s=responsive will query only posts in
the Articles category for the term responsive.
Also, http://domain.com/category/articles/
feed will produce an RSS feed just for the
Articles category.
Meet the community Find a WordPress event taking place near you and get involved in the community
support
08 Get
WordPress has an amazing community
of developers across the world. There are also
a great deal of resources including the codex,
support forums and email lists. To get the best
support as fast as possible, make sure youre
posting your needs in the right place and
accurately describing the problem you have.
involved
09 Get
The best way for WordPress to continue to
grow and get better is for all of us to contribute
to it. There are loads of ways to do that, from
beta testing to supporting others to simply
showing up at meetups. I love the discussion
forums and I read almost all of the hackers
emails. I also co-organise a local WordPress
meetup and push others to attend events as
much as possible. There are so many ways to
get involved.
up your site
10 Back
Last but not least BACK UP YOUR SITE!
Sorry, I really didnt mean to yell, but its so easy
and so many people dont do it. I shouldnt
say no one, I think three people actually do it.
There are countless plug-ins and export tools
built right into WordPress and most hosting
companies offer backup solutions. Find a way
to back up, automate it and keep the data safe.
Otherwise you could regret it!
Words: Jesse Friedman. Jesse is a professor
at Johnson and Wales University, and director
of web interface and development at Astonish
jesserfriedman.com
Getting started
20 WordPress myths,
mistakes & misgivings
Jesse Friedman, author of the Web Designer's Guide to WordPress, helps you avoid common
WordPress mistakes and takes a look at some of the common myths and misgivings
WordPress has made huge strides in the last
year or two to become a fully-fledged CMS.
With these changes comes the need to shed
old myths about WordPress. As we move to
become a ubiquitous CMS available to the
masses, misconceptions and preconceived
notions of bugs and flaws from the past can
cloud our judgement of the future. Hopefully
alleviating our thoughts of following 20
mistakes, myths and misgivings we can all
realise the full potential of this CMS and work
to make it better.
These mistakes can lead to problems in
security and slow the development process.
Remember to do these steps, so your
WordPress sites are faster, better planned and
more secure.
MISTAKES
an administrator
01 Using
to post content
Its very important to make sure youre
disguising your WordPress installation as much
as possible. Predictability is not your friend and
posting content under an administrator account
is predictable.
Guessing your username isnt too hard if its
displayed on your post think about it! Instead
reserve your administrator level account for
backend work only. Create a contributor
account to use as your author.
You can still write the content as an author
just assign the post to the contributor before
you post it live. It's these simple things that
really help security.
admin
02 Keeping
an administrator
This mistake has been made for years and
continues to get made. By default WordPress
creates the admin username and assigns it to a
administrator level. This is obviously predictable
and one way of making it easier for a hacker to
get into your site. If you combine this with
creating a poor password youre just asking to
be hacked.
wp_ as
03 Keeping
the table prefix
Being unpredictable is the best way to avoid
being hacked. Are you seeing a trend yet? Since
WordPress powers 75 million sites its common
knowledge that tables by default start with
wp_ which means if you dont change the
table prefix, your Site Options table is wp_
options. Its very easy to change your table
prefix and can be done during installation either
manually in the wp-config.php file or during
auto installation in the form fields. Choose
something difficult and hard to guess, especially
since you wont have to think about it again in
the future.
26
backing up
05 Not
Weve covered four mistakes that you can
avoid in an effort to be more secure. But no
system on earth is totally secure so there if the
worst happens and you get hacked make sure
youre ready.
There are countless ways to restore. Bluehost
now offers full restoration points on a daily, weekly
and monthly basis. You can also use VaultPress
which backs up everything from your content to
your themes and more. VaultPress
is not free but its the absolute best solution
out there. Heres another great free solution that
you can try: BackWPup.
Getting started
Being hacked via a predictable admin login is incredibly common (see tip 09)
the cache
07 Forgetting
If you arent using caching or dont know
what it is youre giving up precious seconds of
load time. WordPress is a dynamic database driven
CMS, which means visitors to your site prompt the
server to request info from your database, then it
uses that content to populate your site creating
HTML markup. Caching enables you to save that
finalised HTML markup and server that to visitors
Jake Goldman giving his insightful talk at WordCamp Boston 2013 (see tip 10)
WordPress updates
08 Ignoring
I get it, its hard to remember to update all
your sites to the newest version of WordPress. In a
bit we are going to talk about managing multiple
sites at a time. WordPress core developers and
contributors work tirelessly to improve WordPress,
its UI, efficiency and speed, but when a bug or
vulnerability is found it usually gets an update
MYTHS
Some things still being said about WordPress just
arent true. Thousands of developers around the
world are working to make WordPress better and
bring it into the new web future. So its a bit
frustrating to build a 20,000 page directory that is
secure, fast, reliable and easily editable, then hear
a client tell us Isnt WordPress just for blogging?
isnt secure
09 WordPress
Secure is a relative term, and no system is
perfect. Heres the deal, WordPress is powering 10
times more sites than most CMSs combined. If
youre a hacker, are you going to spend your time
learning the vulnerabilities of less common CMSs
isn't a CMS
10 WordPress
The source of this myth comes from that fact
that WordPress was, and indeed still is, the
number one choice for hosting blogs. Its easy to
look at WordPress as the kid brother of CMSs that
have been long established solutions for hosting
big websites.
There is a long standing joke between
WordPress developers when we get asked by
clients or novices, can WordPress do... and we
answer, yes before they finish the question. The
reason is because WordPress is so extensible and
even before WordPress 2.9 and 3.0 (which brought
us the biggest advancements towards becoming a
full fledged CMS) we were still doing complex
websites, directories, ecommerce stores and more.
Jake Goldman from 10up (www.10up.com) gave
a talk at WordCamp Boston in October 2013 about
Enterprise Level WordPress Solutions. It was a
fantastic talk and it hit the nail right on the head.
WordPress is fast, reliable, secure and powerful,
Getting started
WordPress is not just for amateur bloggers massive global companies use it, too (see tip 12)
doesnt
13 WordPress
provide support
WordPress is open source how can it provide
support? Well, if youre looking for an 800
number, youre right, it doesnt exist.
However, the idea that you cant get support
for a problem, bug or issue is just not true. No
matter what level user or developer you are, there
is a way to get answers to your questions.
The forums at WordPress.org are amazing, the
codex has fantastic documentation and social
networks play an important role too. My favourite
place to get support is from the email lists. There
are hackers, plug-ins and other email lists which
you can subscribe to. Then when you have an
issue, you email the group. Typically I get answers
to rather complex problems in minutes. This is also
WordPress installations
Misgivings
Even though founder Matt Mullenweg's bio says WordPress is a blogging platform, it's not just that!
28
Getting started
You can easily manage all your WordPress websites at once (see tip 15)
for e-commerce
16 IWordPress
totally understand the hesitation to use
WordPress as an e-commerce system. WordPress
wasnt made to manage products and stores.
cant do anything
18 WordPress
out of the box
Ive said it so many times in so many classrooms,
webinars and conferences. WordPress can do and
be anything you want it to do and be. Your
themes, in the end, output HTML markup. The
only thing that is different between WordPress and
cant be responsive
17 WordPress
Im not even sure I understand this one. I
hear all the time that WordPress cant support
is open-source
19 IWordPress
get why big companies are nervous about
this. However, just because I understand it doesnt
mean I agree. Most enterprise level companies
have this feeling that they have to spend money
on a system or software in order to use it. If its
free, it isnt good enough or doesnt provide
enough support.
plug-ins
20 WordPress
arent perfect
You should hesitate before putting someone elses
code into your system. The fact is that not all
WordPress plug-ins are created equal. There are
bugs, outdated code and flat-out problems. You
should do your due diligence and make sure what
youre using is well done, supported and highly
rated. When youre in the WordPress Plug-in
Repository make sure the plug-ins youre looking
at have a good amount of downloads, have been
recently updated, supports your version of
WordPress and in the end read through some
code to make sure stuff isnt broken.
You can always Google for reviews of these
plug-ins as well so that you can get a range of
opinions and user experiences of them before
trying them yourself.
I fear I may have just touched the top of the
iceberg with only 20 but this is an opportunity
for you to speak up and share your ideas.
WordPress is doing just fine and is moving
along nicely. However, it would be nice to see
WordPress used to its fullest potential more and
more. All too often these days I hear myself
saying Why arent you just using WordPress for
this project? and I hear back Umm... I dont
know. Can WordPress do what I want?
It's on us to help the world understand what
WordPress really can be. So by keeping in mind
the tips here I am sure that you will be able to
maximise your content and the full potential of
WordPress. Go out and create! l
Feature
30
Futureproof WordPress
Feature
Futureproof WordPress
Futureproof
WordPress
Feature
Futureproof WordPress
Not so appetising Its worth taking steps to limit user admins options for creating labyrinthine
drop-down menu structures and phone screen sizes demand creativity to get menus right
Media
Theres really one major opportunity for a user
admin to gaff up media. WordPress core developers
have made it so easy to upload, resize, modify and
insert media. The one major issue that still exists is
the inclusion of static width and height attributes.
When a user admin uploads an image and
inserts it into a post, the HTML looks a bit like this:
<a href="http://jes.se.com/inspirational/
do-more-of-what-makes-you-awesome"><img
src="http://jes.se.com/wp-content/
uploads/2013/03/20130324-220448.jpg" alt="Do
more of what makes you awesome"width="500"
height="628"class="alignnone size-full
wp-image-249" /></a>
As you can see in the above markup, there are
static width and height attributes included in the
<img> tag. The problem is, the attribute values
are based on the images actual size so if a user
admin chooses full size the image embedded can
be thousands of pixels wide. There are two steps to
solving this problem, and preventing users content
from blowing out of its containing area.
32
Menus
Navigation must be done right, or you end up with
a site that cant be traversed. User admins can have
a lot of fun with navigations, which means a lot can
go wrong too. There are several things you can and
should do to make sure menus dont run wild.
If you havent already, you should read up on
custom walkers (http://netm.ag/walkers-242). With
custom walkers you can take complete control over
the output markup of all menus on your theme.
Whether youre working on a theme for a
specific client, or building one to be released to
everyone, youre probably testing with a simple and
clear menu. Before you move on from testing, try
adding 10 main nav items, then go on to 20. Then
add drop-downs, and flyouts and then more dropdowns. If you think to yourself: No ones going to
add this many main nav items, then youre wrong.
Feature
Futureproof WordPress
'container_id'
=> '',
'menu_class'
=> 'menu',
'menu_id'
=> '',
'echo'
=> true,
'fallback_cb'
=> 'wp_page_menu',
'before'
=> '',
'after'
=> '',
'link_before'
=> '',
'link_after'
=> '',
'items_wrap'
=> '<ul id="%1$s"
class="%2$s">%3$s</ul>',
'depth'
=> 0,
'walker'
=> ''
);
wp_nav_menu( $defaults );
Shortly well discuss a plug-in I wrote, which
will give you the additional ability to only call the
menu, when on a mobile device, at the server level
without the need for extra database calls, server
calls, or hiding content with JavaScript or CSS.
Featured images
Featured images are probably the most powerful
tool in a responsive toolkit for web designers.
There are two things that set them apart. First, the
image is called outside the main content, which
means that you can do anything you want with it.
Second, you can set sizes and call them by name,
which means, when a user admin uploads an image
and sets it as the featured image, WordPress will
automatically resize it based on your specifications.
Take a look at a website such as WordPresspowered Bates University (www.bates.edu). It makes
excellent use of featured images. As you go through
the site, youll find the same image used in
many different places, in many different
Breaking point Jesse Friedmans responsive robot (http://netm.ag/robot-242) provides a tragicomic reminder of why RWD needs to consider large as well as small screens
Feature
Futureproof WordPress
WP mobile detect
I spoke on this topic at last years WordCamp
Boston. During the talk I mentioned a PHP Class
called PHP Mobile Detect (now maintained by
Serban Ghita). With it you can detect the users
device at the server level. Right after the talk, I
converted the class into a WordPress plug-in(http://
netm.ag/detect-242), which is free to download.
Device detection isnt the solution for every
problem (and, to be frank, can be misused), but
I feel this plug-in makes an important, positive
impact for WordPress users. WP Mobile Detect is
also one more step towards truly dynamic web
environments.
Greedy graphics WP Mobile Detect (http://netm.ag/detect-242) stops full-size content gobbling data and slowing loads
34
Feature
Responsive menus The main navigation for Clarke Insurance Agency (http://clarkeinsurance.com)
Having fun
With RWD, were so focused on what works, the
strategies and user testing that we often forget to
have fun. Theres so much we can do to provide a
light, happy experience for our users. This may not
be the keystone of site design, but it has its place.
Remember when Silverback (http://silverbackapp.
com) came out? It had the parallax vines hanging
Tools
There are two additional tools that definitely need
amention in this article. The first is JetPack, a free
plug-in now packaged with WordPress. It has a ton
of features and tools, but the one that best relates
to responsive and WordPress is JetPack Photon
Futureproof WordPress
(http://jetpack.me/support/photon). Photon is
afreeCDN powered by WordPress.com. You only
need to configure this tool once, and from then on
your images will be served from WordPress.com
servers automatically. Youll still have local copies on
your server. The best part? Photon auto resizes your
images a lot like adaptive images, in order to serve
optimised images for the viewport of the device.
The second tool is another plug-in, built by the
guys at Linchpin. Its an in-dashboard responsive
page tester (http://netm.ag/tester-242) and provides
users with the ability to see what pages and posts
will look like in different devices before posting. In
the future Id like to see this as a QA measure that,
if configured in this manner, would prevent you
publishing content until tested on all window sizes.
In conclusion
There are so many tools, resources, frameworks and
testing environments to help you build a beautiful
responsive website. Converting that to a responsive
WordPress theme will not be all that challenging
especially if you read my book, Web Designers
Guide to WordPress (http://netm.ag/guide-242).
The challenge comes after you hand it to
your user admin. WordPress is a powerful CMS,
but its ubiquity is reliant on its ease of use and
adoption, a cycle that increases WordPress work
for less experienced user admins. Find a balance of
empathy, education and passion, so you can provide
the tools, resources and knowledge to maintain
your responsive WordPress themes integrity. l
THE ALL-NEW
TRY IT
FOR FREE
TODAY!
Youll find additional imagery, exclusive audio and video content, and weve
partnered with Tuts+ Premium to bring you superb screencasts that tie in
with the practical projects in every issue. Dont miss it!
Tutorials
WordPress techniques
Expert tutorials
Step-by-step skills to hone your WordPress techniques,
all written by leading industry experts
Contents
38
42
46
50
WordPress e-commerce
Build e-commerce into your sites
Page 62
52
56
Multilingual WordPress
Top techniques for global sites
58
Page 58
Page 52
62
66
Tutorial
Create your
own WP toolkit
Download
the files! >
Matt Cohen and Scott Basgaard of WooThemes show how to create a WordPress plug-in
to enhance your custom WordPress projects, using best practices in plug-in development
Knowledge needed Basic to intermediate PHP, basic WordPress plug-in
development understanding
While our environment can play a role in how we approach the project,
here well be working specifically with built-in WordPress functionality.
Before diving into our toolkit, its important that we fully assess the
environment were working in. While we may not need to make
environment-based decisions on each project, the plug-ins we have in place
could help to save us time on certain projects.
On a project using paid-for products such as Canvas by WooThemes
(www.woothemes.com/products/canvas) and Gravity Forms by Rocket
Genius (www.gravityforms.com), we can instantly see that its possible for
us to leverage the power of Canvass custom hooks to display custom forms
(managed using Gravity Forms) at various points in our website.
Fly high Rocket Genius (www.rocketgenius.com) is the company behind Gravity Forms,
Clean slate The flagship theme over at WooThemes, Canvas is a hugely flexible and
functional WordPress theme for creating just about any design
the popular form creation plug-in for WordPress and a great addition to your toolbox
38
Many developers arent aware of the many powerful hooks that exist in
every WordPress installation. Actions and filters can easily be shifted from a
theme to a plug-in environment. That way you can maintain a single codebase and activate that plug-in across multiple installations.
Every time the WordPress Loop runs, at least three actions are executed:
loop_start, the_post and loop_end. We can leverage these, along with
conditional tags, to display and manipulate content in any loop being
displayed on screen from within our plug-in!
Tutorial
In harmony When setting up your WordPress environment, its important to see how
you can leverage the products youre using and help them to work together
Out the box Before we begin working on the toolkit, we should make a list of the
various items wed like to include. We can refer to this as the project scope
Now that we understand what were going to be doing and how lets
geta few starter features together that we can include in our plug-in:
Woo hoo! Enhance your WordPress-powered website with this handy free
functionality suite. You can save yourself dozens of hours work with this plug-in
Tutorial
Must-use plug-ins
When setting up a WordPress-powered project, one conventionally
activates the plug-ins required, placing them in the wp-content/plug-ins
folder. More often than not, the developer or agency will hand the project
over to the customer, who will subsequently manage the day-to-day
running of the website or web application.
What if the customer deletes or deactivates a required plug-in? Should
the administrator or customer even be allowed the permissions to
deactivate these plug-ins if they are required by the installation in order to
function? This is where must-use plug-ins come in handy.
Contrary to popular opinion, mu-plugins doesnt stand for WordPress
Multi-User, as it does in other usages of the MU moniker.
A must-use plug-in is like any other WordPress plug-in, with the only
difference being its location. Placing a plug-in in the wp-content/mu-plugins folder (which you would need to create) means that the plug-in in
question is activated by default and is separated from the other, nonessential, plug-ins in the WordPress installation.
Your toolkit could be added as a must-use plug-in, along with any
other custom plug-ins created for the project. This ensures that your
code is separated from what the administrator has control over within
WordPress and, in fact, empowers your customer to have peace of mind, to
a degree, when activating their plug-ins of choice, knowing that they cant
inadvertently deactivate or delete plug-ins required by their project.
Other popular uses of must-use plug-ins include the insertion of plug-ins
to enable various caching methods within your WordPress installation, as
40
Different breed Must-use plug-ins are stored away from non-essential ones.
For more information head over to http://codex.wordpress.org/Must_Use_Plugins
Tutorial
View power Google Analytics is one of the biggest analytics tracking programs
available today. This code could, of course, be replaced with another tracking application
echo $this->get_advertising_code();
}
$this->_post_counter++;
}
} // End display_advertising_code()
private function get_advertising_code () {
return wp_kses_post( trim( $this->advertising_code ) );
} // End get_advertising_code()
} // End Class
}
global $yourname_wordpress_toolkit;
$yourname_wordpress_toolkit = new YourName_WordPress_Toolkit();
?>
Tutorial
Customise
the admin area
Download
the files! >
Customising the backend of WordPress can improve user experience and productivity.
Noel Tock explains how to destroy, rebuild and conquer WP-Admin to meet user needs
Knowledge needed Intermediate PHP, CSS and HTML
Requires WordPress, text editor, capable browser
Project time 1-2 hours
For many designers and developers, WordPress has become an
invaluable asset for prototyping and creating products for clients. At
the same time, most use-cases have been attempted and
documented before. When we think about customising WordPress, we almost
always think of themes. Through this powerful theming layer, we are able to
create any type of website imaginable. This is also what the end user is
exposed to. But what happens when users need to interact with the backend
of WordPress.
In this tutorial, Ill get you thinking about how you can customise the admin
area of WordPress to help users become more productive. Were not talking
about adding your logo to the login screen, but about consolidating and
optimising the user experience so we can make the end user genuinely enjoy
the experience. That said, customising the admin area of WordPress can easily
drain resources and distract you from your real goals. Therefore, its important
to start with the easy wins and grow with the needs of your users. Lets start!
Destroy
The admin area is littered with features and options, making it intimidating for
anyone that is using it for the first time. Remember, first impressions matter.
Your initial goal should always be to lean out the interface to the point that end
users are comfortable with the navigation and dont have to deal with any more
screens then they are required to.
For example, take your typical small business client. Do they need anything
beyond managing its pages? Probably not. In order to funnel the experience
towards the functionality it requires, lets remove everything else.
A simple method of achieving this is by modifying the User Role. WordPress
has a number of default role types ranging from Subscriber to Super Admin.
For our small business owner, the best starting position would probably be the
Author role. Well add a function that will retrieve the role and then modify
it by adding and removing certain privileges. In the tutorial files (http://netm.
ag.com/WP-240), Ive put all the code in a single plug-in. Even if youre just
starting out with PHP, the function is quite obvious as to what its doing:
Night and day A few lines of code can change the way your clients perceive and use
WordPress to improve productivity and user experience
42
function change_author_capabilities() {
$role = get_role('author');
$role->remove_cap('edit_published_posts');
$role->remove_cap('publish_posts');
$role->remove_cap('delete_published_posts');
$role->remove_cap('edit_posts');
$role->remove_cap('delete_posts');
$role->add_cap('upload_files');
$role->add_cap('edit_pages');
$role->add_cap('edit_others_pages');
$role->add_cap('edit_published_pages');
}
add_action('admin_init', 'change_author_capabilities');
Thats already a great start on our mission towards a lean admin. While
youre coding, you may notice that the Dashboard and Media section are still
visible. Lets hide those too:
function remove_menu_items() {
remove_menu_page('index.php');
remove_menu_page('separator1');
remove_menu_page('upload.php');
}
add_action('admin_menu', 'remove_menu_items');
Because we simply hid the Dashboard, users logging in will still get
redirected to it. Lets bring them straight to the Pages overview instead:
function change_landing_page() {
return admin_url('edit.php?post_type=page');
}
add_filter('login_redirect', 'change_landing_page');
Congratulations, youve just reduced client training from one hour to 15
minutes. And because youve also made your clients life easier, feel free to
increase your rates too.
To make a long story short, just because something comes packaged with
Frontend customiser Before WordPress had built this into its core, we brought
design options to the front to provide a more fluid user experience
Tutorial
WordPress, doesnt mean it will help you or your client. Get rid of the fluff and
focus on client needs.
Rebuild
There will come a point when your users will be managing more than just
posts and pages. Theyll need to administer different types of content. Custom
Post Types have allowed us to extend WordPress in ways that we hadnt thought
of before. Ive dealt with creating UIs for everything, from transactions, food
menus and even shelter animals up for adoption. While theyre all easy to
spawn using Custom Post Types, the UI thats displayed by default is not able
to handle or understand the data hierarchy. If you respect your users, provide
them with a relevant UI and not just metabox spaghetti.
For these custom post types, we dont need to manipulate the post view
CSS or the HTML through jQuery either. Were far better off creating new pages
within the admin area. It sounds a bit daunting, but its actually quite simple
once your break down the pieces. Lets assume our small business owner now
wants to have a products section on his website where products can be easily
managed from a single view. We start off by creating a new page where this
custom UI will reside:
function add_products_page() {
add_menu_page('Products', 'Products', 'edit_pages', 'cpt-products', 'create_
products_page' ,", 21);
}
add_action('admin_menu', 'add_products_page');
Well now want to fill this blank canvas with your new interface HTML. In this
case, were going to let our user manage everything from a single page (you
heard right, your user wont have to click to open each product or post). This
means the page will have a simple input form for new products while providing
DOM visualisation Theres no perfect or clean way to hack around this complex
structure, or the 14,000 lines of CSS that style it
Youre probably now wondering how you save any input made to these forms.
This also isnt too hard. Simply create a function that listens for POST data every
time an admin page is initialised, like so:
function catch_new_products() {
if ( isset($_POST['new_product'] ) == 'true') {
$new_post = array(
// Grab Data from POST (see files)
);
wp_insert_post( $new_post );
wp_redirect( wp_get_referer() );
exit;
}
add_action('admin_init', 'catch_new_products');
So the function above checks if theres POST data that matches the custom form
we built before. If so, it then grabs the data and sticks it into a new post.
It then redirects us to where we came from.
Happytables dashboard The default WordPress admin area is too clunky and
hard to customise, so we created our own administration layer
Tutorial
Further reading
Youll easily find plenty of resources on the technical aspects of
customising the WordPress admin. Instead, think outside the box and
be inspired by solutions and case studies beyond WordPress. Here are
some great reads to help you break out of the WordPress mindset (OK,
theres one WordPress book mentioned, but its excellent).
Zen mode The full-screen writing mode of WordPress is a lesser known feature, but
paves the way for a lighter and more productive interface
a VIP WordPress agency in the UK. The existing admin was restyled
Conquer
Ive shown you how to make the user experience more pleasant as well as
creating your own UI for specific post types. These two items will already take
you a long way. But what happens when your requirements go beyond that?
There is an opportunity to also customise the overall visual feel and style
of the backend for the benefit of corporate branding, perception or even
functionality. You can make changes to go that extra step. This is typically done
once you start having hundreds of users logging into the backend. Having gone
through this process more than once, let me provide you with some tips from
my personal experience.
WordPress has frequent updates, which means you dont want to create an
entirely new stylesheet simply to have the default HTML change on you and not
know which CSS has subsequently also been altered. This means you should
leave the core wp-admin.css as it is and override elements through specificity.
To achieve that, were going to cut the head of the snake off by attaching an
id onto the body.
function add_custom_id() {
?>
<script>
jQuery(document).ready(function()
jQuery('body').attr('id', 'custom-admin');
});
</script>
<?php
}
add_action( 'admin_footer', 'add_custom_id' );
44
From there on out, always tag any styling with #custom-admin. If youre using a
CSS preprocessor (such as LESS or Sass), then thats even easier as youll simply
create an additional top-level node to nest your entire CSS within.
For example:
body#custom-admin {
#wpwrap {
input {padding:5px}
}
}
Adding the CSS to the backend is similar to regular themes with just a slightly
different action:
function add_custom_style() {
wp_enqueue_style( 'custom-admin', get_stylesheet_directory() . '/customadmin.css', false, '1.0' );
}
add_action( 'admin_enqueue_scripts', 'add_custom_style' );
This will give you a great deal of control over how the styling works. When
WordPress does happen to update, youll simply need to spend a few hours or
so tweaking whatever has changed in the meantime.
The WordPress backend is already very JavaScript dependent, so using jQuery
to create, edit or destroy various HTML files is a simple and non-intrusive way of
moving forward quickly.
Way forward
Hopefully this article has given you plenty of ideas and methods for varying
degrees of customisation. Customising the backend of WP-Admin really boils
down to two factors: firstly, what benefits do your clients or users get from
each change you perform? And, secondly, with each change that you perform,
are you still working on a code-base that remains manageable in terms of easy
maintenance? Above all, experiment and never feel restricted by community
trends or opinions. Tear the WordPress admin apart and make it your own. l
ComputerArtsreadersknowdesignmaersThatswhywevecompletely
reinventedourdigitaleditionasafullyinteractiveiPadexperiencewith
impeccableusabilityTheresalsoadditionalinteractivecontent
suchasimagegalleriesandbonusvideoswhichbringthe
motioncontentfeaturedinthemagazinetolife
TRYITFORFREETODAYWITH
OURNO-OBLIGATION-DAYTRIALAT
hp//googl/sMcPjUKorhp//googl/aibUS
Tutorial
Master The
WordPress Loop
The Loop is the basis of dynamic content in WordPress. Joe Casabona explains what it
does, how to use it, and resolves the most common Loop-related queries
Knowledge needed: Intermediate PHP, Basic CSS, Basic WordPress
Requires: WordPress
Project Time: 1-2 hours
As a WordPress developer, there are quite a few things you need to
understand. Things like themes and plug-ins, actions and filters, tags
and more. But none of these are more important than the worldfamous WordPress Loop.
Oh, The Loop. It's a living, breathing thing. It's the backbone of WordPress
the part that makes everything tick. Without The Loop, there would be no
dynamic content (very little, anyway). Using The Loop, we can print any content,
in any format we want. And who better to describe it than its creators? Here's
what the WordPress Codex has to say about it:
'The Loop is used by WordPress to display each of your posts. Using the Loop,
WordPress processes each of the posts to be displayed on the current page and
formats them according to how they match specified criteria within the Loop
tags. Any HTML or PHP code placed in the Loop will be repeated on each post.'
Essentially, WordPress has a set of tags to: (a) make sure that we have posts to
display, and (b) display those posts. The tags, called Template Tags, enable us to
fully customise how we display the information from each post.
The same function will continually keep track of if we still have posts, which is
why it's used as the while condition.
the_post() unpacks the next post in the queue.
WordPress automatically grabs the posts by querying the database based on
the URL. You could also overwrite the original query by using WP_Query() or
query_posts() to get your own information. In any case, as long as that query
returns posts, have_posts() returns true and we enter The Loop. We end The
Loop in this way:
<?php endwhile; else: ?>
<?php _e(‘No posts were found. Sorry!'); ?>
<?php endif; ?>
We have a simple fallback here: in the case that have_posts() returns false,
it tells the user we have no posts for them. Inside The Loop, we can do all kinds
of things to completely customise the post display. While I won't go through all
of the Template Tags, I will point out some of the most commonly used ones. All
of the following functions print out their value by default. Some of these
functions also accept Boolean values, which determine if the value should be
printed or returned.
the_title(): Gets the title of the post or page. It accepts three arguments: an
HTML tag for before the title (named $before), an HTML tag for after the title
(named $after), and $echo, the actual title itself.
the_time(): Gets the date the post or page was published. The only argument
it accepts is the format in which the date should be printed. These arguments
are the same ones that the PHP date function accepts. The default whatever is
listed in the WordPress admin panel, under Settings > General.
the_content(): This will display the content of the post or page (that is,
Template tags Which template tags belong inside or outside The Loop?
46
Tutorial
Querying posts WordPress has several alternative methods for querying posts
whatever you entered as the body text in the visual editor of the WordPress
admin. It accepts two arguments, the first of which tells WordPress what to
display as the 'more' text. I'll talk about this at length in the next section. The
second argument, called $stripteaser, is simply documented as a Boolean that
will "strip teaser content before the 'more' text". There are no examples on the
Codex, and there is some debate over what it actually does.
the_excerpt(): Gets the first 55 words of the post, appending [...] to the end of
the string. It accepts no arguments. Both the number of words and the ellipsis
can be changed within the functions file using filters.
the_category(): Gets the category (or categories) in which the posts are listed.
For arguments, it accepts the separator, which will be printed in between
categories; how to handle displaying parent categories; and the post_id, which
of course defaults to the current post.
the_tags(): Gets the tags added to the post. The arguments it accepts are what
to print before the list of tags, how to separate each tag, and what to print
after each tag.
the_permalink(): Gets the post's or page's URL in the format defined by the
WordPress admin panel in Settings > Permalinks.
the_author(): This displays the post author's name. You could also use the_
author_link(), which would display the author's name with a link to his or her
other posts. If you do use the latter, I'd recommend you make at least an
author.php page to display the posts nicely!
course, you don't need to use it on one of these standard templates. You can use
The Loop anywhere you want, as long as you have the proper hooks just wp_
head(); in place. If you want to do something like display the thumbnail of the
most recent post in the sidebar, you can do that too. I'm going to show you how
to display a 'breaking news' title and link to story in your header.
Since everyone's template is different, I'll let you handle placement. Just open
up your header.php file and place this code where you'd like:
It's also worth noting that most of these functions have accompanying
'get' functions that is, get_the_title() which would simply return the value
instead of printing it. You can see all of the Template Tags and whether they
belong inside or outside The Loop at http://codex.wordpress.org/
Category:Template_Tags.
Now, I know what you're thinking: that one burning question you have...
<?php
query_posts('posts_per_page=1&category_name=breaking-news');
if ( have_posts() ) : while ( have_posts() ) : the_post();
?>
<div class="breaking">
<h3>BREAKING: <a href="<?php the_permalink();?>"><?php the_title(); ></
a></h3>
Tutorial
?>
48
the_post(); ?>
05. Conclusion
And that's it for this article. Phew! We've covered quite a lot of ground here,
and it might seem a bit overwhelming if you're just getting started, but
persevere, and soon you will be working productively with WordPress' bread
and butter: The Loop!
You can find out more about The Loop and building WordPress themes,
plug-ins and more in my book, Building WordPress Themes from Scratch (see
http://rockablepress.com/books/building-wordpress-themes-from-scratch) l
Joe Casabona is a web developer, teacher and author of the book Building
WordPress Themes from Scratch. He absolutely loves WordPress and is
unapologetically nerdy!
Tutorial
Create a WordPress
custom post type
Web developer, software engineer and part-time entrepreneur Gilbert Pellegrom
explains what a WordPress custom post type is and how to use them
Knowledge needed: PHP, WordPress
Requires: WordPress 3.1 or later
Project Time: 20 minutes
Custom post types were introduced in WordPress v3.0 to enable
developers to easily add different types of content to their plug-ins
and themes, allowing you to easily extend WordPress.
In this tutorial we will see exactly what a WordPress custom post type is, and
how to use them in your plug-ins and themes straight away.
50
Tutorial
Manage in admin By following this tutorial you'll create an awesome custom post
type that you can manage in the WordPress admin
Flexibility Custom post types enable developers to easily add different types of content
to their plug-ins and themes
05. Conclusion
You now have a fully functioning book database, which you can control via your
WordPress admin area, enabling you display books on your WordPress site.
Tutorial
WordPress e-Commerce
Using WordPress
e-Commerce
Download
the files! >
Alongside its unstoppable rise as the CMS du jour, WordPress is increasingly used
for ecommerce. Dave Mackintosh explains getting started without shelling out
Knowledge needed Intermediate PHP and WordPress, basic MySQL
Requires PHP, WordPress, MySQL
Project time 4 hours
Setting up
Youre enthusiastic, excited and prepared for WordPress. Youre installed, up
and running and cant wait to get your shop on the web but arent sure
where to start. If youve used WordPress before youll be accustomed to the
admin area already; if not, well get you ready to sell quicker than youd think.
To install WP e-Commerce head to the plug-in manager in the WordPress
admin and search for WP e-Commerce. Hit install; now all you have to do is
click activate.
Once youre installed you will see a new menu item labelled Products;
clicking on this will show you an empty catalogue of products. You can add
products here and now, which for the rest of this tutorial is a good idea because
well be running through how to retrieve the most popular products and add
product searching without paying for the WP e-Commerce gold cart extras.
Popular products
It may seem obvious to have a popular products function, but WP e-Commerce
doesnt come with it by default luckily its a simple piece of functionality to
create. For the sake of your business cross-selling is important; its also crucial
to your customers that they have a pleasant buying experience, and displaying
popular products is a great way to better sales and improve user experience.
Im using the brilliant Sticks & Stones theme by Tipsy & Tumbler (http://netm.
ag/sticks-232) its very responsive and works brilliantly with WP e-Commerce
straight out of the box. Since the themes functions.php is already rather large
were going to create a new file called functions-addons.php, which well save
in the same directory as functions.php. Youll find these files in wp-content/
themes/sticksandstones.
Before we get to the code, the way newer versions of WP e-Commerce work
is that when a user adds one of your items to their cart and goes through the
Admin zone WordPresss famous one-click install plug-in screen makes extending your package a 30-second task, no matter what your level of experience
52
Tutorial
WordPress e-Commerce
Why WP e-Commerce?
Small wonder The beauty of WordPress is that it doesnt take much to do much: a
tiny amount of the right code can do massive things for your site and your customers
ORDER BY 'quantity'
DESC LIMIT {$atts['limit']}", ARRAY_A);
We expose the standard WordPress database adaptor to the function, giving us
the ability to query the database and format the results. We can now modify
the data in a way we feel comfortable with. For the sake of ease Ive left the
format as an associative array.
The second thing we do is use the MySQL built in SUM functionality, which
counts the total number of a fields values and our third action is to group
the items together by the products ID so we dont get duplicates in the results
and invalidate the results.
Now it may look like weve done most of the work and in a way we have;
the painful part is out of the way but the function isnt finished. We have to
process the data we have into a format thats both semantic and flexible to use
throughout our new shop.
The method we use to go about this is by writing a loop that will go over
the data and output our most popular products. To execute our loop we utilise
the code below, which individualises the product from the data set we fetched
from our query meaning we can write each out quickly, easily and efficiently.
//Loop through the results
<?php
foreach ($popular_products as $item) {
$product = get_post($item['prodid']);
$the_title = $product->post_title;
$the_image = get_the_post_thumbnail($item['prodid']);
$the_price = the_product_price($item['prodid']);
$the_link = get_permalink($item['prodid']);
}
?>
Well flesh out the loop now with some HTML and Ill explain the WordPress
functions as I use them. A lot of developers that use WordPress dont know of
these functions and write terrible code as a polyfill, slowing the whole site
down. Ill just stick to a two-column layout for the HTML: this is pretty standard
for most product pages. This code goes inside the loop:
<div class="product-grid popular-<?php echo $item['prodid']?>">
<a class="popular-name">
<?php echo $the_title?>
</a>
<a href="<?php echo $the_link?>">
<span class="img">
<?php echo $the_image?>
</span>
<span class="price">
<span>
From only
</span>
<?php echo $the_price?>
</span>
</a>
</div>
You may have noticed a function called in a previous code block named
the_product_price. This function is very simple: it just returns the price of the
product. It takes two arguments, and if you pass in the second one you will get
the special_price. In WP e-Commerce this is simply the sale price, which you
can find in the product admin page. The first argument is the products ID,
which is a unique number given to each product.
function the_product_price($id, $special_price = false) {
if ($special_price) {
return wpsc_currency_display(get_post_meta($id,
'_wpsc_special_price', true));
} else {
return wpsc_currency_display(get_post_meta($id, '_wpsc_price', true));
}
}
Tutorial
WordPress e-Commerce
Codex cracker The WordPress Codex is a great resource for learning to get to grips
with WPs integral functions, which are worth putting to use wherever possible
also home to the forum and runs on WP e-Commerce itself selling premium plug-ins
Now to use this as a shortcode within your pages (shortcodes dont work
on posts for some reason) you only need one line of code its another
one of those magical WordPress functions.
The first argument of the add_shortcode function is a string that you would
use within your page; the second argument is the name of the function weve
just finished writing.
to expand the search to include categories and tags to give your shoppers the
best experience possible when browsing your online shop.
Assuming youve been adding products to your shop and have already
found the categories page within the admin area (under the Products menu
we looked at earlier in the tutorial), and youve added your categories and your
products to them, we can go ahead and start customising our search form and
results page. This will make it as easy as possible for your shoppers to get from
visitor to putting money in your pocket.
WordPress has some weird terminologies when it comes to searching
specific fields, such as categories not actually being categories they are called
taxonomy and as such we have to do a special query to get them out! So to
acknowledge our goals were going to customise the search form to include
a new field.
First we need to open our search form template in our theme: its called
searchform.php (if you dont have one in your theme folder, create one). Were
going to customise the form open a form tag like this:
54
Tutorial
WordPress e-Commerce
Little and large Companies of all sizes are turning to WP e-Commerces software
because its comprehensive and simple to use, without the cost of development times
Dream theme The brilliant, free Sticks & Stones theme by Tipsy & Tumbler (http://
Right, thats our form taken care of. Save it and upload it youll see your new
form appear where the search forms used to be. Now lets take a look at
WordPresss search functionality what were going to be doing is adding a
filter to the search function that pulls out results that match our custom
taxonomies. This seems really difficult to do, but actually takes just five lines
of code; you could say its easier than setting up WordPress.
Open your functions.php and add the following block of code to the bottom
of it Ill explain the code afterwards:
This is less than helpful, so what we need to do is have our search redirect to
the categories page and list the products within there rather than modify global
WordPress behaviour. The reason we would want a redirect is that we dont
want to edit core WordPress behaviour, because we wont be able to update
and so may introduce security issues (also the lack of updates means were
missing out on important security fixes and feature updates).
So lets look at how to get the category as a definitive go-to for the redirect
and get these searches running smoothly for all your buyers.
First we need to know whether we have a valid search or not. If we dont
have a valid category we should set this as our search query and perform a
search there. This will by default return nothing and your formatted no results
page, or if it does find something it will display that: all angles taken care of.
Lets look at how were going to check for the query string, again using
hooks. WordPress knows how to look after WordPress so lets keep at it. Start
by opening a function body in functions.php and adding this code to it:
Tutorial
Custom fields
array(
'name' => 'Quote - Source',
'desc' => '(Optional) URL to the quote source',
'id' => 'pf_quote_source',
'type' => 'text',
'default' => ''
)
Requires: WordPress
Project Time: 30 minutes
We can add additional metadata to a post by using Custom Fields.
The problem with Custom Fields is theyre not very user-friendly. If
youre designing for a client you need to explain what they are, what
needs to be entered and also hope they dont forget to do it. This is where
Meta Boxes come in handy! Let's get started
)
);
This is simply an array declaration that we will pass to a series of functions to
create our Meta Box. Were going to look at those functions next, but once
theyre written, all youll need to do is add array entries like the one above to
your function.php file to quickly add Meta Boxes to your themes.
The above entry will add the Additional Post Format Meta box that I use on
my blog to the post screen.
If youre using Custom Post Types you can add a Meta Box to them as well by
adding another array entry. Heres an example for a Post Type called Books:
56
$meta_box['books'] = array(
'id' => 'book-meta-details',
'title' => 'Book Meta Details',
'context' => 'normal',
'priority' => 'high',
'fields' => array(
array(
'name' => 'Summary',
'desc' => '(Max 45 words) Note: Leave all other fields blank if the book is
not on sale yet.',
'id' => 'book_summary',
'type' => 'textarea',
'default' => ''
),
array(
'name' => 'Buy Now URL:',
'desc' => '',
'id' => 'book_ buy_now_link',
'type' => 'text',
'default' => ''
),
array(
'name' => 'Price:',
'desc' => 'e.g. £9.95',
'id' => 'book_price',
'type' => 'text',
'default' => ''
),
array(
'name' => 'Book is on sale?',
'desc' => '',
'id' => 'book_on_sale',
'type' => 'checkbox',
'default' => ''
Tutorial
),
array(
'name' => 'Sample PDF Url',
'desc' => '(Optional) Link to a sample PDF.',
'id' => 'book_sample_url',
'type' => 'text',
'default' => ''
)
)
);
Notice that we change the array key to reflect the post type that the entry
applies to. Once youve created all the array entries that you want you need to
add the following line of code to run the functions that will actually create the
Meta Box(es).
add_action('admin_menu', 'plib_add_box');
//Note that this line only needs to be run once.
Custom fields
break;
case 'textarea':
echo '<textarea name="'. $field['id']. '" id="'. $field['id']. '" cols="60"
rows="4" style="width:97%">'. ($meta ? $meta : $field['default']) . '</textarea>'.
'<br />'. $field['desc'];
break;
case 'select':
echo '<select name="'. $field['id'] . '" id="'. $field['id'] . '">';
foreach ($field['options'] as $option) {
echo '<option '. ( $meta == $option ? ' selected="selected"' : '' ) . '>'.
$option . '</option>';
}
echo '</select>';
break;
case 'radio':
foreach ($field['options'] as $option) {
echo '<input type="radio" name="' . $field['id'] . '" value="' .
$option['value'] . '"' . ( $meta == $option['value'] ? ' checked="checked"' : '' ) . '
/>' . $option['name'];
}
break;
case 'checkbox':
echo '<input type="checkbox" name="' . $field['id'] . '" id="' . $field['id']
. '"' . ( $meta ? ' checked="checked"' : '' ) . ' />';
break;
}
echo '<td>'.'</tr>';
}
echo '</table>';
}
The function loops through the fields section of each entry of the $meta_box
array and prints out the supplied values.
Tutorial
Build a multilingual
site with WordPress
Take your WordPress site to the world. Shannon Smith, founder of Caf Noir Design,
explains what components are needed for a successful multilingual site with WordPress
Knowledge needed Intermediate (X)HTML, CSS, WordPress themes, basic
familiarity with .htaccess
Requires Poedit or similar recommended
Project time 6-8 hours
In most of the world, a multilingual web isnt the exception, its the
norm. About two-thirds of the world's population use more than
one language in the real world, so its no surprise that they use
those languages online as well.
People often assume that English is the de facto language of the web, but
the majority of internet use now occurs in a language other than English
(www.internetworldstats.com/stats7.htm). As more and more people join the
online world from Russia, China and the developing world, that lead will grow.
For businesses adapting to a global market, as well as organisations
attempting to foster customer loyalty at home, operating a website in multiple
languages, at the same time, is becoming more common. With that in mind,
let's look at techniques you can employ in WordPress to create a multilingual
site. Let's get going
58
Tutorial
Roots theme The Roots theme contains POT, PO and MO files for multiple languages
05. Politics
Youll also want to think about the politics of language use. For example,
many language switchers use flags, but this is not really recommended.
Language use and nation-states are not perfectly overlapping entities
and its easy to offend people when you make that assumption. You might
also want to look at cultural considerations in terms of design elements like
colour choice.
A third consideration is choosing a default language. Sometimes this is an
easy choice, but in areas where there isnt a dominant language (Switzerland),
or where language choice is contentious (Canada, Belgium), you cant always
have a single default language. A common option in Canada, for example, is to
have a splash page with a language choice (though, in all honesty, it would be
You will need a WordPress theme that has been localised or internationalised
(many commercial themes have been), or youll need to localise your own
theme. The WordPress Codex contains information on how to localise
WordPress itself, but the information also applies to themes.
The first step is to make your theme translatable. WordPress uses the GNU
gettext localisation framework to translate the WordPress core. It can also be
used in themes.
Every snippet of text in your theme needs to be wrapped with GetText calls.
This means the snippet is passed by one of two PHP functions. __() is used
when the snippet, called a message in the codex, is passed as an argument to
another function; _e() is used the rest of the time. You also need to include a
text-domain, which functions to identify the snippet as belonging to your
specific theme. That means that your theme will include bits of text that look
like this: __('message','theme-name')
Next, youll need to create a PO (Portable Object) file for each language you
plan to use. Commercial themes often already come with .po files for popular
languages. If not, or if you are using a custom theme, you can use a tool like
poedit to generate a file with all the terms wrapped in GetText calls. Some
blank themes like Roots include several language PO files and you can use
these to get started.
After you have PO files, youll want to create MO (Machine Object) files that
speed up the GetText translation process. Tools like poedit can do this for you
as well. More details can be found at: www.urbangiraffe.com/articles/
translating-wordpress-themes-and-plugins.
Tutorial
theme. You can also use child themes if you need to modify colour
schemes for cultural reasons, for example. But you will still need to
manage content across several sites.
And note that some shared hosting providers do not permit multisite
installations on their servers. If you arent using multisite, you could try the
ManageWP Worker plug-in to access all your sites through one dashboard (I
havent tried this, though).
remove all the other language versions from each WordPress page and post.
That can be extremely time-consuming.
The single-installation method solution has advantages. The WPML plug-in
is very easy to use and to install. It makes it easier to maintain the content of
your site, since you only need to use one administration panel and can easily
jump from one language version to another. You can translate plug-ins that
arent available in your language. In fact, almost every part of your site can be
translated using the plug-in interface. However, some more complex plug-ins,
especially ecommerce plug-ins, wont work with WPML. The WPML plug-in
can also be buggy. There are a few built-in troubleshooting tools, but they
are hard to find and are not especially user-friendly for clients.
WPML This enables you to operate a site in multiple languages with a single installation
60
THEBESTLOGOSEVER
A panel of leading branding and identity design experts come together
to bring you the definitive list of the 50 best logos ever. Gain exclusive
insight into the creative processes behind the most recognisable identity
design work in the world. If you love logos, youll love this!
On sale now at WHSmith, Barnes & Noble, www.myfavouritemagazines.co.uk
and for iPad at http://goo.gl/sMcPj
Tutorial
Filter with
Infinite Scroll
Download
the files! >
Emma Lewis shows how to combine a Masonry layout with in-page category filtering
and Infinite Scroll to create a homepage that provides easy access to all of your content
Knowledge needed Intermediate jQuery, basic Wordpress
Requires Basic Wordpress installation, tutorial-base-theme folder and
tutorial.wordpress.xml file from the accompanying tutorial files
Project time 2-4 hours
Basic set-up
Im going to use WordPress, but the jQuery we develop can be applied with
minor changes to any CMS. Download WordPress from www.wordpress.
org, log into the CMS and add the Advanced Custom Fields plug-in (www.
advancedcustomfields.com). We use this to add a custom size_on_homepage
field to posts, so we can select the size of each article in the Masonry layout.
I have exported 150 dummy posts 30 for each of five categories along
with a Primary Menu (of categories), which will be used for filtering. These are
saved in tutorial.wordpress.xml. Import the tutorial posts and menu (Tools >
Import > WordPress in the CMS you may need to first install the WordPress
Importer plug-in). Navigate to the Primary Menu (Appearance > Menus), and
enter your homepage URL into the All Categories URL field.
To ensure that we have clean URLs, choose the Post name permalinks option
(Settings > Permalinks). Finally, in your file tree, add the tutorial-base-theme
folder to /wp-content/themes/ and activate it in the CMS (Appearance >
Themes). In this tutorial we will be editing the theme files, which you should
access from your favourite text editor.
Take a bow The finished tutorial site complete with Isotope, filtering and Infinite
Scroll, working together to form a coherent user experience
Isotope David DeSandros jQuery plug-in enables a range of block layouts, including
the popular Masonry format, making it easy to display content in interesting ways
62
Tutorial
We are using a very basic theme designed to get the tutorial up and running
as easily as possible. The two plug-ins that we are interested in, namely Isotope
and Infinite Scroll, are stored in /js/libs.
If you load the homepage you should see a header bar with a home
buttonand category filters and a page container showing the first 10 articles,
each floated left. You can change how many articles appear on each page in the
CMS(Settings > Reading).
Markup
With set-up complete, lets make some changes to our homepage markup.
Well start with header.php. The navigation bar uses standard boilerplate
markup, with the wp_nav_menu function rendering the Primary Menu links.
Lets add a class filters to the content div as follows:
<div class="content filters ">
Now edit index.php. We need to add a div to which Masonry will be applied.
As Infinite Scroll is triggered, new articles will be appended to this div. We also
need to add pagination (which will later be hidden by Infinite Scroll). Alter the
start and end of the loop as follows:
Care must be taken when using Isotope with content that includes
images. If the height attribute of the image is not set inline and the
images have not finished loading before Isotope initialises, the article
heights will be calculated as smaller than they should be and Isotope
will position these articles in such a way that they overlap on the page.
In this tutorial we have fixed image heights. If you dont have a
fixed image height that can be hard-coded in the HTML, you have two
options: the first is to initialise Isotope within $(window).load() rather
than $(document).ready(), thus delaying Isotope from initialising
until all of the media on the page has loaded; the second and often
better option makes use of imagesLoaded, which is a small plug-in
included within Isotope.
imagesLoaded is called on the container element and takes a
singleparameter, a callback function, to be fired once all of the
imageswithin that element have been loaded. Isotope can be
initialised within this function, ensuring that elements are only
positioned once all images have loaded. Compared with using
$(window).load(), this method has the advantage of only waiting for
images within the container to load, rather than all of the media on
the page, which could be quite a saving if the page contains social
media buttons, tracking, videos and so on.
Even if you do know the height of your images, the imagesLoaded
plug-in can be a useful tool. For example, you can set the opacity
of all images to zero using CSS and put a loading GIF on the image
container; then use the callback function to set image opacity to one
and hide the loading GIF. This causes all of the images to display
loading GIFs until loading is complete and then, preferably using
anice CSS transition, fade in simultaneously.
Masonry
Lets get started on some JavaScript. First well add the elements that weve just
created as variables in the init function of tutorial.js:
Tutorial.masonry = $('.masonry');
Tutorial.filters = $('.filters');
Tutorial.pagination = $('.pagination');
Its now time to initiate Masonry. We do this by writing an initMasonry
function that calls Isotope on Tutorial.masonry, specifying the selector of
ourarticles as .article.
Isotope uses a Masonry layout by default, but we need to specify
the columnWidth property. This sets the grid in which articles will be
Masonry grid A columnWidth of 200px enables us to use articles of 190px, 390px and
590px, each with a right margin of 10px
Tutorial
Bear with us We use a custom message and GIF with Infinite Scroll in order to show
that new content is being appended
Filtering Our filtering function updates the infinite scroll page URL so that there are no
positioned the left position of each article within the container will
always be a multiple of this value. Our articles are 190px, 390px and
590px wide, and each has a right margin of 10px, so columnWidth is set to
200px. Add initMasonry to your JavaScript file and call it from init.
the masonry div is taller than the height of the window. Add a function
checkContentFillsPage:
initMasonry: function() {
Tutorial.masonry.isotope({ itemSelector : '.article', masonry: { column
Width: 200 } });
}
Reload your homepage, and note how Isotope has filled some of the gaps that
were present when floating.
Infinite Scroll
Lets initialise Infinite Scroll with a function initScroll, called after initMasonry in
init, so we can view all of the content without reloading the page. Well call this
function on the masonry div, which will expand to contain the extra content.
initScroll:function(){
Tutorial.masonry.infinitescroll({
navSelector : '.pagination', // selector for the pagination container
nextSelector : '.pagination a', // selector for the NEXT link (to page 2)
itemSelector : 'div.article', // selector for all items you'll retrieve
loading: {
speed:'fast',
finishedMsg: '<span class="bearwithus">Sorry...</span><span
class="loading">No more articles</span>',
msgText:'<span class="bearwithus">Bear with us...</span><span
class="loading">Loading new content</span>',
img: '/wp-content/themes/tutorial-theme/img/ajax-loader.gif'
}
},
// append the new items to isotope on the infinitescroll callback function.
function( newElements ) {
Tutorial.masonry.isotope( 'appended', $( newElements ), Tutorial.
finishedAppending);
});
}
The selector properties should be straightforward. Weve added a loading
message, which displays as new articles are being brought in, as well as a
finished message to display once all articles have been loaded.
The callback function uses Isotopes append function to add these new
articles to the array of elements in the Masonry layout; this in turn has a
callback function that is entered once those articles are appended we will
look at that shortly. Finally we need to ensure that there are enough elements
on the page that the user can scroll in other words, that the height of
64
checkContentFillsPage: function(){
if($('.masonry').height() < $(window).height()){
Tutorial.masonry.infinitescroll('scroll');
}
}
We need to call this function when the page is loaded (in init) and the new
items have been appended to the masonry div. This is where we will use our
append callback function (Tutorial.finishedAppending):
finishedAppending: function(){
Tutorial.checkContentFillsPage();
}
Filtering
Now the challenge is to make our header links behave as in-page filters. First
add a line of code to the init function to bind click events on the filters to a
filter function:
Tutorial.filters.find('a').bind('click', Tutorial.filter);
When a filter is clicked we need to intercept the default action. We then need
to ensure we are not in the process of loading new content (with Infinite Scroll)
or appending articles to the masonry div (with Isotope). In order to do this well
need a Boolean variable Tutorial.isScrolling, defined as false in the init function.
Setting this variable to true on filtering will disable further filtering until
the filtered articles have been appended. It should be set to false in the
finishedAppending function. We should also add an errorCallback property to
our Infinite Scroll options in initScroll, setting isScrolling to false, to enable us
to refilter should there be an error in Infinite Scroll.
Next, if our filter is not already active, we filter. We need to transfer the
active class to the correct filter, and we can update the page URL (without
Tutorial
reloading the page) using the history.pushState function. This enables the user
to navigate directly to bookmark, filtered content, and allows the website owner
to channel people to specific categories should they wish. We should also add
a line to init to check whether the user is on a filtered page when they arrive
at the site and add the active class accordingly. By making use of WordPresss
menu classes, this becomes a simple task:
$('.filters li.current-menu-item').addClass('active');
Filtering is achieved via Ajax using $.get. We remove all articles from the
Isotope array, reset Infinite Scroll and then repopulate the Isotope article
arraywith filtered articles.
filter:function(e){
e.preventDefault();
var $this = $(this);
if(Tutorial.isScrolling || $this.hasClass('btn')){
return;
}
else if ( !$this.parent('li').hasClass('active') )
{
Tutorial.filters.find('.active').removeClass('active');
$this.parent('li').addClass('active');
if($this.hasClass('brand')){
$('ul.nav li.all').addClass('active');
}
var $url = $this.attr('href');
if(history.pushState ){
history.pushState('', document.title,$url);
}
$.get($url, function(data){
$data = $("<div>" + data + "</div>");
$data = $data.find(".masonry");
var $new = $data.find('div.article');
Tutorial.masonry.isotope( 'remove', $('.article' ));
Tutorial.resetScroll($url);
Tutorial.masonry.isotope('insert',$new);
window.scrollTo(0,0);
Tutorial.finishedAppending();
});
}
}
Our resetScroll function needs to update the Infinite Scroll page URL to the
correct category page and reset Infinite Scrolls internal states. When the user
scrolls to the end of any page, the Infinite Scroll plug-in overwrites the loading
message with the finished message, so we must also reset the loading message.
We then bind the Masonry container to the updated Infinite Scroll.
resetScroll:function(newPath){
Tutorial.masonry.infinitescroll('update', {
path : [(newPath) + 'page/',''], // new path for the paged navigation
state: {
isDuringAjax: false,
isInvalidPage: false,
isDestroyed: false,
isDone: false, // For when it goes all the way through the archive.
isPaused: false,
currPage: 1
},
loading: {
msg: $('<div id="infscr-loading"><img alt="Loading..." src="/
wp-content/themes/*YOUR_THEME_NAME*/img/ajax-loader.
gif" /><div><span class="bearwithus">Bear with us...</span><span
class="loading">Loading new content</span></div></div>')
}
});
Tutorial.masonry.infinitescroll('bind');
}
Thats it! We have access to all of our content on a single page, laid out in a
clear interface. A live example is at http://netm.ag/infinite-238. l
Thanks to David DeSandro (@desandro) for his peer review of this tutorial
Tutorial
01
66
02
Tutorial
Build a custom
folio in WordPress
Derek Chan reveals how to create a Wordpress, Twitter and Tumblr integrated portfolio
Its no secret that you can reach bigger audiences with an online
showcase than a traditional folio book. There are many CMS
options that are effective for building folio sites, but few free ones
are as strong as WordPress.
WordPress is a powerful CMS that extends beyond the basic blog site set
up, enabling users to customise it to create the perfect professional folio.
One of its main advantages over other systems is its extensive and varied
collection of plug-ins, which include social networking widgets that are
especially useful for helping creatives promote themselves. The other great
thing about WordPress is its support forums: you can get help for almost
any topic related to the CMS.
This tutorial assumes some existing knowledge of the WordPress platform,
and that you have a self-hosted installation rather than the basic version on
WordPress.com. Here, Ill guide you through how Ive installed and
customised three key plug-ins to create a slick grid-based portfolio.
The first step is to do some research. There are many ready-made
themes for WordPress, so have a look through these and see which
ones best fit your needs. For my site, I wanted the main focus to be on my
portfolio pieces.
Your website layout itself should be unobtrusive, light and clean. It should
be easy to navigate, so it needs to be organised. I came across two great gridbased sites/themes that were both visually and structurally appropriate for
what I wanted: The Grid System site, a clean layout by Antonio Carusone; and
the Graf Theme, designed by Kwame Busia of Neue Themes.
01
02
04
After looking at these two website designs, I knew I wanted to have the
same grid structure. I looked deeper into the backbone of the sites and
noticed their use of the 960-pixel grid. This is a clean system with great
flexibility. The grid can be divided into two variants 12 columns
and 16 columns which can then be further separated into even smaller
columns. I was especially drawn to the six-column system that The Grid
System uses.
Using the six-column grid, I wanted to structure my site with a top
row navigation of six items, with one column for a left sidebar and
a five-column-wide box for the page contents. Each column will be 140
pixels wide and with 20-pixel gutters in between. To make it easier, I
made my top navigation fixed. This way, when viewers scroll down past
the page, they still have easy access to the page links. I now had a basic
structure to apply to my site design.
03
04
05
05
Tutorial
06
07
08
10
Once you have all the images uploaded and attached, all you have
to do is place the HTML code into the actual post. As you can see,
there are a lot of options to choose from, such as speed, timeout, next/
prev. The speed determines how fast the transition is. The timeout is set
to 0 here, meaning the slideshow does not play on its own. Next is set
to #slideshow-39,.next-link, which means that clicking the slideshow
itself advances the image (the number 39 is the ID number of this
specific post), and clicking the Next link button also advances the
slideshow. With all that done, you should end up with a smooth show.
06
07
08
68
09
10
11
Tutorial
11
12
14
15
12
Now that the HTML code is in there, the next step is to edit the CSS to
style the look of your feed. In my CSS file the tumblr_photo divider is
set at a specified width and height. Here, the dimensions are 140 pixels
wide and 90 pixels tall similar to my project thumbnails, but slightly
shorter because I wanted this list to be more compact than the projects list.
I have also chosen to hide any overflow this ensures that the Tumblr
photo feeds are always consistently cropped to that specific size. Once
youve set your dimensions, you have now built a well-structured Tumblr
photo feed.
13
The last widget we will deal with is the Wickett Twitter Widget. As with
the previous WordCycle and Tumblr plug-ins, you can install and
activate it by getting the relevant folder from the Plugin Directory.
Similar to the Tumblr Widget, we want to drag this new Twitter Widget
into either the same sidebar panel as your Tumblr Widget or into a new one
of your choosing. For my site, I kept it separate because I wanted to keep
them side-by-side. Once youve done this, add your Twitter account username
and select the maximum number of tweets, and, if you want, tick Hide
Replies and/or Include Retweets. Hit Save and then youre done.
14
I also customised the Wickett Twitter Widget. Here, you can see that I
opened up the wickett-twitter-widget.php file and added small snippets
of HTML. I added a specific divider for the twitter-time because I wanted the
time to start on a new line. The second modification I made was to again add
a horizontal break (<hr />) to keep the grey line motif between each tweet.
15
The last step for adding my Twitter feeds to the site was to use CSS to
style the font size for the time details of the posts, and add some
padding to separate it from the text of the actual Twitter post. Here, you will
see that Ive adjusted the font size to 9px and added a padding of four pixels
to the top. Preview the results, and youre done. l
16
Derek Chan is a graphic designer originally from Hong Kong, Chan now works
for creative agency Gin Lane in New York. Primarily a print designer, he also
has experience in web design and motion graphics. www.derek-chan.com
Learn WordPress
40 brilliant tutorials
E
R
MO
40 BRILLIANT
WORDPRESS
TUTORIALS
70
Learn WordPress
40 brilliant tutorials
01
FOR BEGINNERS
01
02
04
Learn WordPress
40 brilliant tutorials
02
08
25
30
08
Deleting images
72
WORDPRESS TECHNIQUES
12
Learn WordPress
40 brilliant tutorials
27
17
19
Learn WordPress
40 brilliant tutorials
33
Dave Donaldson has written several WordPress plugins, and this article is a culmination of the things he
USING PLUG-INS
5 free essential plug-ins for
your first WordPress blog
30
74
Learn WordPress
29
34
36
40
ADVANCED SKILLS
35 Integrate the Bootstrap navbar
into your theme
This is just one of a series of tutorials from Kateryna
Belyaeva covering integration of most popular
Bootstrap components into a WordPress theme.
http://wp.tutsplus.com/tutorials/theme-development/
how-to-integrate-bootstrap-navbar-into-wordpresstheme
38
40 brilliant tutorials
Real-world WordPress
Case study
jacksonvilleartwalk.com
The art festival site was responsively rejuvenated by agency Station Four using Modernizr,
CSS, parallax effects and WordPress. Chris Olberding, partner at Station Four, explains
.net: Tell us how Station Four got
involved with the project.
CO: In late 2012, Downtown Vision Inc
(DVI), a non-profit organisation that works to
promote and revitalise downtown Jacksonville in
Florida, approached Station Four
(www.stationfour.com) to see if we would be
able to help them create a simple website for its
monthly art festival, the Jacksonville Downtown
Art Walk. In addition to The Art Walk being an
event that we regularly enjoyed, we were in the
process of moving our office downtown and are
big advocates of the area.
Due to constraints of timeline and budget,
the initial scope of the project was fairly limited.
However, our team was excited about the project
and were able to negotiate an expansion of
the projects scope, thus allowing us to build
something our team is proud of from both a
technical and creative standpoint.
Lists and lists Every month the event has new artists and
venues. CSS3 columns were used to balance things out
jacksonville
artwalk.com
December 21
January 2013
January 7
S4 team presents
sketches of single-page
responsive design. The
DVI approves.
From the
beginning
76
December 2012
Project kick-off meeting.
S4 and DVI teams review
the project brief.
January 23
Testing begins in advance
of the upcoming February
Art Walk event.
Real-world WordPress
Close up jacksonvilleartwalk.com
Case study
The techie bit
The project is
powered by
WordPress and
takes advantage
of the Foundation
responsive
framework. Some
modification to
Stellar.js was able
to accommodate
the desired
parallax animation
effect. We used
the GreenSock
animation
library jQuery
plug-in, which is
significantly faster
than jQuerys
native animations.
Modernizr was
used to prevent
serving large files
to mobile devices
and to provide
an optimised
experience for
touchscreen
devices. We used a
custom script that
takes advantage
of JPEGTran
and PNGOut
algorithms to
compress the
site images.
4
1
Sticky header
Hand-drawn lettering
February 2013
Site soft launched and
tested during event by
partners, sponsors and
the venues.
March 2013
Feedback from the
February event is
incorporated. Official
launch during March
event goes smoothly.
Separate layers
May 2013
Full-width image
Profiles
Name Chris Olberding
Job Creative partner
Company Station Four
URL www.stationfour.com
Twitter @colberding
Chris Olberding is the co-owner
and creative partner at Station
Four, a digital agency based in
Jacksonville, Florida
Name Sabreena Katz
Job Web designer
Company Station Four
URL http://sabreenakatz.com
A recent graduate from the
University of North Florida,
Sabreena joined the team at
Station Four in 2012 and excels at
applying her talents in illustration
to the web
Real-world WordPress
Case study
www.japantimes.co.jp
The Japan Times redesigned in order to modernise and preserve its legacy. Benjamin Thomas
and David Ashkanasy of Bento Graphics and Mark Thompson of The Japan Times explain how
.net: Tell us about The Japan Times.
MT: First published in 1887, The Japan
Times is the nations oldest and most
widely read English-language newspaper today.
Its original mission was to serve the non-Japanese
community as well as give an accurate picture of
Japan to the outside world. The companys first
website was launched in 1996 and its last redesign
was in 2007. In conjunction with a recent upgrade
of its main publishing system, the company needed
to upgrade the backend of its website as well as
modernise its overall look and functionality.
.net: In a nutshell, what was the design brief?
BT: By going with a responsive design site, the
company was consciously leapfrogging to the next
generation of new media. It didnt, however, want
too much of a radical visual departure that could
potentially alienate longtime readers. Similarly, there
was the issue of migrating more than a decades
worth of legacy content that included different eras
of coding and photo sizes etc. JT didnt want an
obvious break between new and legacy content.
We needed to balance modern and traditional
design values, and certain elements, such as the
current logo, had to be retained.
The initial inspiration was the pioneering sites
of the Financial Times and The Boston Globe, as well
as the semi-responsive BBC and Guardian websites.
www.
japantimes.
co.jp
August 2012
September 2012
From the
beginning
78
July 2012
Wireframes and design
mock-ups are created
following a review of
design requirements
and how people use
news websites.
September 2012
A static HTML and jQuery
mock-up of the site is
created, providing
stakeholders to
experience the new site.
Responsive typographic
scale is set up after using
a working mock of the
site to optimise legibility
by using a full range
of devices.
October 2012
The beginning of
converting the static site
into a working WordPress
theme and development
of custom plug-ins.
Real-world WordPress
Close up www.japantimes.co.jp
Case study
The techie bit
A mobile-first
approach was used
with HTML5/CSS3
and LESS as a CSS
preprocessor. For
scalability, we split
the style rules of
various site areas
into separate LESS
files. These are
parsed into the
final CSS file. Based
on WordPress,
we used the
Advanced Custom
Fields plug-in and
Custom Post Types
to structure site
admin and query
featured contents
for landing pages,
using backend
integration with
the WoodWing
publishing system
via XML-RPC.
The installation
runs the w3 Total
Cache plug-in
with distributed
memory caching.
Amazon (AWS)
instances with S3
provides cloud
storage for
media contents.
1
2
3
November 2012
Beta-testing of the site
with a range of potential
user-types. Design and
feature improvements
from feedback.
December 2012
Performance testing and
optimisation conducted,
that included a review of
every site feature for
performance
improvements.
3 Breaking The
top left articles are
the top news of the
hour. Articles feature
comment counters.
Centre area
January 2013
5 Sidebar Includes
aside contents:
trending articles or
affiliate links and
advertising banners.
Profiles
The launch!
Showcase
Portfolio themes
20
brilliant
WordPress
portfolio
themes
Give your design work the online showcase it
deserves. Here, we select 20 WordPress
portfolio themes that will see you right.
It's now easier than ever to use platforms
such as WordPress and Tumblr to create a
highly effective and professional design
portfolio page, which is easy to edit and
navigate as you please, similarly to the way you
would a blog page.
You certainly don't need to be a web design
wizard to create a decent looking portfolio site
these days. There are a number of elegantly
designed portfolio WordPress themes out there
to get you started on showcasing your work
the best way possible. And we've picked 20 of
the best right here
01
BigBang
02
80
03
Media Book
04
Contrast
06
Imbalance2
07
Hipster
05
Imbalance
08
Photographer Portfolio
Showcase
Portfolio themes
01
02
05
06
07
Presents: The ultimate guide to WordPress 81
Showcase
Portfolio themes
09
10
11
13
09
Rhythm
10
MiniPress
11
Shiny
12
Singlet
13
82
14
Blitz
15
Simply Infinite
17
Retro
18
Opal
16
Rhea
19
Incorn
20
Haze
Showcase
Portfolio themes
16
17
18
19
20
Presents: The ultimate guide to WordPress 83
Showcase
40 free themes
The
40 best free
WordPress
themes
Here, we reveal the best free WordPress themes
for creating blogs, portfolios sites and more!
The WordPress community is big. Really big.
We're talking thousands of designers and
developers, tens of thousands of writers, and
millions of users, all contributing to pushing
WordPress forward. And one very popular way
to do this is designing and developing free
WordPress themes.
Free themes are a great way to get a blog
or website off the ground. You might want to
start writing about a topic but don't want to
invest the money in a custom site design on top
of hosting and a domain. And once your site is
up and running, there's nothing to stop you
dissecting them, building on top of them and
learning from them.
In this article we've selected some of the very
best free WordPress themes for you to use in
your projects. Each is not only free to use and
open to the public, but also offers something
special and unique. Let's get stuck in
01
Thoughts
02
Flozo
84
03
Glider
04
MyStile
05
Travelify
06
Clean Retina
07
Simple Corp
Showcase
40 free themes
01
08 Workality
Download and demo: www.workality.ca/
themes/workality
Category: Agencies, Portfolio
Responsive: Yes
Workality is a responsive WordPress theme that
provides a powerful way to showcase your work.
Your images, videos, and text will all scale down
precisely for iPad, iPhone and all mobile devices,
10 Great
Download & demo: demo.mythemeshop.com/
s/?theme=Great
Category: Blog
Responsive: Yes
With an unlimited selection of colour themes,
as well as being SEO Optimised, this free WordPress
theme would be appropriate for any blogger.
Another excellent feature which has been
cropping up on some of the newer themes is the
Translation-ready abilities, reaching new audiences
in a foreign languages.
09 Photo
Download and demo: www.wpexplorer.me/
photo/
Category: Photographer
Responsive: Yes
Photo is, you won't be surprised to hear, best
suited for a photographer, as its major feature is
the responsive gallery. The theme is clean with a
bold header that emphasises your logo. This is
perfect if you're looking for a minimal and
versatile theme.
11 Xenastore
Download and demo: www.web2feel.com/
xenastore
Category: Ecommerce
Responsive: No
Xenastore is one of those WordPress themes
that stands out because it is simple, bold and
really effective. The use of colours and graphical
elements are subtle but add a lot of value to the
site and show off your content really well. The
homepage offers several widget areas, making it
very easy to offer specials, coupons and much
more. With a large featured section, showcasing a
small number of products can be done very easily
which enables you to focus on certain content.
12 Responsive
Download and demo: themeid.com/
responsive-theme
Category: Website
Responsive: Yes
Jesse Friedman likes this free WordPress theme so
much he's currently using it to power Jes.se.com.
Responsive utilises several homepage widget areas
to drop in content, making it easy to control
everything. It has a very large and easy to control
featured area on the homepage, which was
perfect for Jesse to feature his book, Web
Designer's Guide to WordPress.
13 Balloons
Download and demo: moargh.de/portfolio/
downloads/wp-theme-balloons
Category: Website
Responsive: No
Who doesn't like Balloons? We could probably ask
the same thing about parallax scrolling. This is the
first free WordPress theme we've seen that uses
the recently widely adopted effect of multiple
scrolling speeds. Balloons utilises a minimalistic
design and lets you focus on the cool scrolling
effect. While a small business or corporation may
not get what they want out of this theme it would
work beautifully for an event or personal website.
14 Grid
Download and demo: www.dessign.net/gridtheme-responsive
Category: Portfolio
Responsive: Yes
Grid gives you the feeling you're on a site that's
had a lot of thought put into its design. This free
Showcase
40 free themes
17
15
Fotofolio
16
Bonpress
86
17
ARCHITEKT
19
Blue Bubble
Swatch
20
Big Square
Showcase
14
18
27
26
21
EBUY
22
Busby
23
Blog-o-folio
24
Skeleton
25
Shuttershot
40 free themes
26
Spectacular
27
Meeta
Showcase
40 free themes
30
31
34
35
28
WP Coda
29
Splendio
30
Polar Media
88
Responsive: No
We like the content used to demo PolarMedia
because it speaks to exactly how this theme should
be used. It's great for a blog featuring news and
up-to-the-minute updates.
This free WordPress theme does a great job of
showcasing content in a new format. Whether
you're reporting on red carpet grand events or
political disputes or international catastrophes, it
will do you and your visitors proud.
31
Zenith
32
Sensitive
33
34
vFlex
35
Panoramica
Showcase
40 free themes
39
36
Appliance
38
Origin
37
Noteworthy
39
40
YAMINTH
Download: azmind.com/2012/03/04/freewordpress-theme-yaminth/
Category: Portfolio, photography
Responsive: No
There's no shortage of modern and minimal
WordPress themes available online. But YAMINTH
(Yet Another Minimal Theme) and its unusual
image layout caught our eye. The free theme
comes with light colours, dark footer, Google Web
Fonts and jQuery fade in, fade out of images. It
also has an options page for easy customisation
and is free for use in both personal and commercial
online projects.
With an unlimited selection of colour themes
this theme would be appropriate for any blogger.
Another feature, which has been cropping up on
some of the newer WordPress themes, is the
Translation-ready abilities, reaching new audiences
in a foreign languages. l
Folder
Download: luiszuno.com/blog/downloads/folderwordpress-theme/
Category: Portfolio, website
Responsive: Yes
Folder is a free WordPress theme with a slight retro
feel to it. With a design dominated by images, this
Showcase
WordPress sites
33 great
examples of
WordPress
websites
Once regarded as just a blogging tool,
WordPress has quickly become a fully fledged
content management system (CMS) for
professional web designers and agencies,
used on millions of sites across the world. Yet
many still think of it as a tool for amateurs
and hobbyists. To set the record straight, we've
picked some of the best WordPress websites
around to show you just what this incredible
content management system is capable of...
01
Entyce
02
Bluelounge
90
03
Ghosthorses
04
Olly Sorsby
05
Showcase
WordPress sites
09
06
Toronto Standard
07
Harvey Nichols
08
Captain Creative
09
42Below
Showcase
WordPress sites
10
10
Viewport Industries
92
11
Tornobambino
12
E&E
13
Showcase
11
12
13
14
14
Work by Simon
15
Branded07
16
Circa
WordPress sites
17
Showcase
WordPress sites
17
19
23
24
18
Iron to Iron
19
94
20
Yoke
21
Grind
22
Guy Gyngell
Showcase
WordPress sites
25
with their SEO meta data the very same day the
site launches. Custom post types are one of my
favourite features as they make creating a CMS for
a client so much easier.
www.ggmusicandaudio.com
23
Myjive
24
Rodesk
25
Ribot
26
6Wunderkinder
Showcase
WordPress sites
26
27
28
30
27
28
Tinkering Monkey
96
29
Intellidogs
30
Jenny Bristow
31
Obi Media
Showcase
WordPress sites
33
32
CRACK Magazine
33
Derren Brown
And finally
10 things you
may have missed
We reckon by now you'll be a WordPress expert, but here's
a selection of things in this issue that you may have missed!
WordPress mistakes
01 Common
Jesse Friedman, author of the Web
06
Site showcase!
the Loop
02 Master
As a WordPress developer, there are quite
a few things you need to understand. Things like
themes and plug-ins, actions and filters, tags and
more. But none of these are more important than
the world-famous WordPress Loop the part that
makes everything tick. Without The Loop, there
would be no dynamic content. Joe Casabona
explains in this expert guide
See page 46
e-commerce to WordPress
03 Add
More and more websites are turning to
WordPress as their CMS, which concurrently
increases the number of shops and online
businesses using it for their e-commerce needs.
With an agglomeration of e-commerce plug-ins
available for WordPress, WP e-Commerce stands
out as a standardised solution its incredibly
powerful and expandable, and works with
just about every theme you can think of. Dave
Mackintosh is your host
See page 52
the scenes
04 Behind
Go behind the scenes on some great
site builds that use WordPress as a Content
Management System.
See page 76
WordPress
05 Responsive
Want to limit user admin damage and
prevent your responsive WordPress theme from
breaking? Of course you do! Check out this
expert guide from Jesse Friedman.
See page 30
98
a better portfolio
07 Build
You certainly don't need to be a web design
WordPress
09 Multilingual
For businesses adapting to a global market, as
plug-ins
08 Essential
Arguably, one of the reasons WordPress is so
popular is that it happily supports templating and
plug-ins, making it highly flexible and customisable
to suit different website needs. This flexibility,
alongside the platforms huge popularity, means
theres thousands of free plug-ins available on
the web. That's the good news. The bad news is
that sorting the wheat from the chaff can be a real
challenge. So in this feature, weve chosen 10 of the
best WordPress plug-ins to add functionality to your
website and as the icing on the cake, they are all
available free of charge!
See page 14
themes!
10 Great
Free themes are a great way to get a blog
or website off the ground. You might want to start
writing about a topic but don't want to invest the
money in a custom site design on top of hosting
and a domain.
And once your site is up and running, there's
nothing to stop you dissecting them, building on
top of them and learning from them. In this feature,
we've selected 40 of the best free themes no
matter what kind of site you want to create so you
can get started with ease!
See page 84
9000
PRESENTS
Visit www.myfavouritemagazines.co.uk/design
for more information