I recently decided to move my WordPress media uploads to a subdomain to improve site speed and help keep things organized for better backups. These are the things I did and issues I ran into along the way.
I recently updated my personal homepage, and decided to collect all my writing about code from three other sites that I’d worked on over the years. So, I exported the Posts from each of those sites, and imported the .xml files to my new site in order to shift the Posts to my new homepage. Along the way, I decided to move my new site’s media uploads folder to a subdomain, and I ran into a few problems along the way.
Why move media to a subdomain
There are a couple of reasons for this:
To speed up my site by allowing simultaneous downloads from multiple sources at once (almost acting like a mock CDN)
To keep things organized and make taking site backups easier (by backing up the database and files separately)
To do a “dry run” on a small site before attempting the same thing on a large site I run (400+ Posts)
How to move media to a subdomain
Create the subdomain on your host files.sitename.com for example
Download ALL the old media files from your WordPress /wp-content/uploads folder via FTP
Upload ALL the media files to your new subdomain
Change your Upload folder to the subdomain in your WordPress settings
You may need to type /wp-admin/options.php in the URL bar and scroll down to upload_path and upload_url_path as this menu option is not visible in the WordPress menu.
upload_path : directory root for subdomain
set it to /home/server_root/sitename/folder
Echo the following from an index.php file at the site root to find your directory root path: <?php echo $_SERVER["DOCUMENT_ROOT"]; ?>
Mine is /home/server_root/sitename/media
upload_url_path : actual URL path for the subdomain
Mine is https://files.sitename.com/media
After changing those options, you should see them appear now in the WordPress Settings → Media menu.
Change your Live Image URLs with a database Search & Replace plugin (this is easier than phpMyAdmin). Two good options are:
(I actually prefer the first one because it seems to run faster (there is no loading bar at the bottom of the screen) and also includes the option to download an SQL backup of your database from the first screen in the plugin – and then import it again if your search/replace fails or causes problems.)
Double check everything is working by trying to upload a new image, and checking your old Posts that had loaded the older images (open a different page or empty the page cache first).
Redirect images that are already indexed by search engines. Do this by adding the following to your .htaccessfile:
Finally, it might be a good idea to create a homepage for the subdomain that directs visitors back to your main site or allows them to search it (otherwise they’ll be met with either a blank page or a 403 Access Forbidden error). Here’s a good article that provides more details, and an example.
Problems I ran into
I have a number of Galleries on my old WordPress Posts, but the way the gallery references images is not with an image URL, but with the gallery shortcode. It looks like this:
So, actually, even when I imported my old Posts to the new site, I didn’t get any of the old galleries showing up because the media IDs which are referenced in the gallery shortcode seem to not be the same on the new site – even if I click “Download and import file attachments.”
When I checked the image code on the old site, it also looked like some of what the site was serving up were some kind of “responsive images.”
One of the themes I wrote before did add support for responsive images, so it seems like those are being served up a bit differently than “normal” images. For example, the URL of some of those images included https://io.wp or something similar – as if being loaded through a default WordPress CDN.
Even after updating and changing everything, the images on my subdomain did not show up inside my Media Library.
I have limited experience with wp-cli but I know it’s a really quick and convenient way to manage WordPress installations. And recently I’ve been using ssh to to manage my sites more often, so I thought it would be a good time to investigate it more deeply.
I’m hosting this site on Dreamhost.com (my host since 2009), and I recently went through their One-Click install to quickly add WordPress here. But, strange thing is, I didn’t receive an email from them with my username/password combination – so I had no way to login (at first).
After a quick Google search, I noticed that Dreamhost has a page about resetting your password – including a section on using wp-cli.
I have limited experience with wp-cli but I know it’s a really quick and convenient way to manage WordPress installations. And recently I’ve been using ssh to to manage my sites more often, so I thought it would be a good time to investigate it more deeply.
Here’s a list of the very first commands I’m running on my new WP install – as well as some I intend to put to greater use in the future.
First of all, we need to ssh into the server and access the site.
$ ssh firstname.lastname@example.org $ cd site.com/wordpress
Change user password
$ wp user list +----+-------------+---------------+------------------+---------------------+---------------+ | ID | user_login | display_name | user_email | user_registered | roles | +----+-------------+---------------+------------------+---------------------+---------------+ | 1 | myusername | myusername | email@example.com | 2018-03-17 11:14:28 | administrator | +----+-------------+---------------+------------------+---------------------+---------------+ $ wp user update 1 --user_pass=NewerBetterStrongerPassword123$ Success: Updated user 1
Create an alias to check for updates
One of the coolest things I found was that you can create an alias to run a series of wp-cli commands one after the other. The following command will check for WP core, plugin, and theme updates at once.
$ alias check-all='wp core check-update && wp plugin list --update=available && wp theme list --update-available' $ check-all Success: WordPress is at the latest version. +------+--------+--------+---------+ | name | status | update | version | +------+--------+--------+---------+ +------+--------+--------+---------+ +-----------------+----------+--------+---------+ | name | status | update | version | +-----------------+----------+--------+---------+ | twentyfifteen | inactive | none | 2.0 | | twentyseventeen | active | none | 1.7 | | twentysixteen | inactive | none | 1.5 | +-----------------+----------+--------+---------+
Update and manage core, plugins, & themes
While I could probably create another alias to update everything at once, I haven’t yet because I still like to do some things step-by-step. So, here are the three commands needed to update or manage WP core, plugins, and themes:
Recently, I needed to migrate a WordPress site from a Multisite installation to a Single Site .com.
I usually use the WP Migrate DB plugin because it works well for my basic needs, but going through the Multisite -> Single Site transition very manually, sure made me see the value in the Pro version of their plugin.
For a full video tutorial walkthrough of the transfer process, I highly recommend Morten Rand-Hendricksen’s Lynda.com course on the subject. Below are a few step-by-step notes detailing the process.
Setting things up
Setup your <TARGET> site first
Install WordPress with default options
Migrate plugins, themes, and uploads
Move them from the <ORIGIN> site -> the <TARGET> site *
Using FTP, I download what I want to keep to my Desktop
Then, upload them back to the NEW site (watch a video, it’ll take a while)
Install WP Migrate DB on both sites and open it
Single Site -> Single Site
From the <TARGET> site:
Copy the URL -> <ORIGIN> site’s “New URL”
Copy the file path -> <ORIGIN> site’s “New file path”
On the <ORIGIN> site:
Export the SQL file
Prepare <TARGET> site’s wp-config.php file **
Open <ORIGIN> site’s wp-config.php file
Find $table_prefix down in the file and copy that table prefix String
Replace $table_prefix String in the <TARGET> site’s wp-config.php with the <ORIGIN> site’s String
I did all the previous steps for the Multisite configuration (to test it), but ended up with the default site and not any of the Posts or content I needed in my subsite. Luckily, DeliciousBrains has written up a tutorial detailing this kind of migration as well:
Expand the “tables” section and select the “Migrate only selected tables below” option.
Select all the relevant subsite tables as well as the “users” and “usermeta” tables.
However, that wasn’t an option for me while using the free version of the plugin. Therefore, ALL the next steps were very manual. But, I think the image from their website is helpful to know which tables to keep and which to get rid of in your SQL file:
Basically, you will want to KEEP all the WordPress data for your subsite (everything with the site ID between underscores _4_ and DELETE all the WordPress data for the main site.
* This was one of my problems going through. I didn’t DELETE all the main site data from the SQL file, so it would import the subsite data, then overwriteit with the main site data.
2. Prepare the SQL upload
After preparing everything as described previously, Export the SQL file
I turned OFF Gzip so I could immediately modify the file after download
Modify the .sql file in any code or text editor
Go ahead and go through and DELETE all the SQL tables that we didn’t need to select (everything that ISN’T blue in the image above).
These will be listed in the alphabetical order shown in the image, so should be easy to find. DELETE everything from wp_blog_versions to wp_terms (because you’ll notice you still have wp_4_terms and the like that contains your subsite data
Find and Replace any instances of wp_4_ with just wp_
Save and close the file
Open phpadmin on the <TARGET> site
Drop all <TARGET> site’s default wp_ tables
Import the NEW SQL file (you just modified)
DeliciousBrains has some SQL queries you can run to remove duplicate usermeta rows as well – these didn’t work for me as the syntax in my phpadmin was wrong, so I manually deleted old users, etc.
Alternatively, it looks like this SQL script will do the job as well
Whitescreen of Death? Your theme may be missing from the target site – /wp-admin will still work – choose a different theme, or be sure to upload the one you want
Manual DB import fails? Don’t use GZIP and export it again (larger file size)
WP Migrate DB ate my posts? This is a migration, not merge – use WP Migrate DB Pro’s push/pull if you just want “updates”
Media files not working? Be sure everything is uploaded (and for Multisite, be sure you changed the upload folder during your SQL export – from /uploads/sites/4/ to /uploads/
Migration failed? Be sure the $table_prefix Strings in your <TARGET> site wp-config.php match those in the <ORIGIN> site’s wp_config.php
Was this helpful?
I hope this write-up was helpful. Let me know in the Comments. I plan to use these notes for my next Migration as well.
Side note:WP Migrate DB Pro can do all of this FOR you automagically. It can also UPDATE your site if there is newer content on one side or the other using their push/pull function. It would be a great option if you do lots of migrations or just want to save yourself the headache of doing it all manually.
This slideshow is accompanied by my own “WordPress as LMS Roadmap” paper that gives step-by-step advice and instructions for building a (basic) WordPress LMS.
Although in the talk, I highlighted the major selling points for using WordPress as an LMS, I’ll refer you to my previous LMS talk titled “WordPress as LMS (Learning Management System)” for more information on WHY you might choose WordPress over the other available options. For the remainder of this post, however, I’ll focus on the practical steps involved in building your own class website in WordPress.
If you want to go with Dreamhost, I can offer 2 months of FREE hosting on a year plan if you sign up with this link AND enter the code WPMUJJ as a discount code when you sign up.
Step 1: Communicate Objects (Posts)
After getting setup with a WordPress website and logging into the backend, you have the option to customize your Theme (design), add Plugins (extra functionality), or play with any of your other Settings. It’s probably a good idea to at least familiarize yourself with the WordPress backend menu.
In your LMS class site, you can use each like this:
Pages = semester-long use (static) – use for Class homepages, Syllabus pages, About pages, Resource pages
Posts = daily use (chronological) – use for Class lessons, Homework assignments, or Reviews
Categories = folders – assign each Class a separate folder to store all Class materials within it
Tags = keywords – tag Posts with grammar points, topics, or subject content to allow easy searching and linking of related Posts later
Media = upload your PPTs, PDFs, DOCs, Images, Videos, or other content here – and don’t forget that WordPress also does a GREAT job of supporting native embeds from sites like Twitter and YouTube. Click this link for a complete list of all the filetypes and embeds WordPress supports
Gather your teaching materials and content
Create a NEW Post for every Lesson
Type (or copy-paste) your Lesson into the Editor and give it a Title
Upload class materials and media
Assign a Category using the Name of the Class (Freshmen Conversation 1B, for example)
Add Tags based on the subject matter (be verb, introductions, conjugation rules, etc)
Schedule the Post (if you want it to be available later, not immediately)
After publishing a handful of Posts/Lessons (or possibly before), you may want to create a Class PAGE specifically for containing the Syllabus, Lesson Plans, and Links to those Lessons. The best way to do this is to create a WordPress Page.
Pages are unique in WordPress in that they DO NOT have Categories nor Tags. However, they are hierarchical, so you could create a Freshmen Conversation Page that has multiple “children” like the list below indicates:
Freshmen Conversation 1A
Freshmen Conversation 1B
Freshmen Student Center Class
If you use “Pretty Permalinks” (go to Settings -> Permalinks in the WordPress sidebar menu) URLs of each Page will follow after their “parent” Page like so:
Therefore, you could simplify your Class Page names under the “parent” Page to only include the section number, date, or location of the class if you want (of course, you could also modify the URL by changing the “slug” under the Title of any Page as well).
Create a Page for each Class
Optionally create one “Category” main Page and Sub-Pages for each Class under that
Copy-paste in your syllabus OR type it up in an unordered list OR table (using a plugin)
Link each Post/Lesson from your Class Category to its syllabus item
OR simply link the entire Class Category to the top of the Page (when students click the main link, it’ll take them to the Category Page which will show a chronological listing of each Post in their Class from most recent to latest)
Plugins that may be helpful
Easy Table (can be used directly in the Post/Page Editor with the syntax required)
TablePress (has its own interface, slightly more complicated and versatile)
“Drip Content” is a term that means “sequential delivery of content.” This basically means that students don’t (or should not) have access to later Lessons before they complete (or are taught) previous Lessons.
This is very useful in fully automated online Learning Management Systems where a course creator simply sets up the system that unlocks later Lessons as users progress through and complete the Lessons in order. There are a number of good plugins to help you accomplish this.
However, for a simpler system – and one in which the teacher is a more active participant as the course progresses, the simplest method for “dripped content” is simply creating and Scheduling each Lesson/Post for the date that Lesson is to be taught or made accessible (this is akin to simply writing a new Lesson and Publishing it every Monday, for example).
Write a Post (Lesson) for you Class
Assign it a Category (Class folder) and add Tags (topics / keywords)
Change the “Publish On” date in the Publish Meta Box
Search the Plugin Directory for “Drip Content” or “Show Hide Content”
Step 4: Assess & Track Students (Comments / Authors)
There are numerous ways you can track and assess student work in WordPress. Two of the easiest you can set up with no additional plugins are:
WordPress Comments on Class Posts
Giving students a username and login as an “Author” on your Class site where they can write their own Posts (as essays) which you then edit and approve before they go “Live” on the site
Register new Users on your site by going to the Users -> Add New menu item
Assign student roles as “Author” and register them
In recent versions of WordPress, self-registration seems to be disabled, although there are some plugins available that will allow students to register themselves (see below)
Allow students to login and write essays (Posts) in their Class Category – under a Sub-Category of your choice
Edit their work and Publish it – you can write comments in the Post itself or in a Comment below it
Optionally, don’t Edit the Post yourself, but just leave Comments and assign the student the work of coming back in and fixing their mistakes
Go in to the Settings -> Discussion menu to adjust Comment settings appropriately
“Allow people to post comments on new articles”
“Comment author must fill out name and email”
“Comment author must have a previously approved comment”
Assign students the homework of reading a Class Post and Commenting on it
Additionally, when I was in grad school, I was assigned not only my original Comment about the article, but 3 “Reply” Comments to other students in the class. This is a good way to get a Discussion going.
Grading Student Work
Personally, without installing any additional plugins into WordPress, I have previously just kept records of student work in Excel spreadsheets or Google Sheets (they’re better for calculating numbers on the fly). However, there are a number of plugins available for grading, quizzes, and other things that you may want to try (see below).
Step 5: Communicate with Students (Comments / Plugins)
One thing that WordPress makes exceptionally easy is communication between people. Whether this is using a Commenting system (as discussed above) or Plugins that add extra Social Networking style features, WordPress is has many powerful tools available to customize communication.
Enable Comments on your site (discussed above)
Add Plugins that enhance both your Comments and other forms of communication
Enhance your Comments
Add a Contact form
Add Polls or Surveys
Add Forums, Wikis, or Chats
Add a Social Network plugin
Plugins that may be helpful
Akismet (the #1 spam comment blocking plugin in the world)
Finally, it is important to keep an organized space for resources and references for your classes. The easiest way to do this is to create a dedicated Resources Page that you continually update as new resources are found or added.
Your WordPress Media Library houses everything you upload to your site (in chronological order) so it can get rather messy after a while. However, there are a few ways you can help yourself keep things organized in the Media Library:
Be sure to NAME your resources appropriately so that they are easy to Search for in the Search box
Install a plugin to help with organization (see below)
Another option for creating a list of Resources that are simply links to various other locations online is to create a Blogroll (list of other blogs) on a page or in a Sidebar Widget.
Appropriately name/label every file you upload
Create a Page called “Class Resources”
You might also create Sub-Pages for each Class like “Freshman 1A Resources”
OR if there will be much overlap, simply divide your Main Page with different Headings for each class
Update your “Class Resources” Page as you find/upload new material
Create a Custom Menu called “Blogroll” or “External Resources” or something
Add links to external sites in this Menu
Add the Menu to a Sidebar Widget (or possibly a Page – you might need a plugin)
We are living in the middle of an age of educational and technological revolution. Will you get swept away, left behind, or ride the riptide of edtech into the future? Join me as I look at various successful models of online schools and classrooms, the major components that make up a successful online Learning Management System, and how to create one for yourself using WordPress.
This is a talk I presented at the Jeonju-Jeonbuk KOTESOL Chapter meeting for March 2015.
I may have addressed this talk (and presented it) to a slightly wrong audience at the time. The meeting was small and contained people who are primarily ESL teachers – who may be familiar with certain web technologies.
However, I designed this talk for an audience who already understand the basic concepts of an LMS (Learning Management System) and want to implement it themselves in their classrooms.
Therefore, this talk is primarily an argument for WHY WordPress is the BEST solution for an LMS – as opposed to other possible solutions (including Moodle) – and introduces some basic concepts about how to put WordPress to work for you as an LMS.
WordPress as LMS
define:LMS/ Learning Management System: A digital learning environment to manage all aspects of the learning process.
In this talk, I will present THREE basic ideas about WordPress as LMS:
Traditional classrooms usually involve a great deal of printed paperwork and in-class interaction with the teacher.
On the other hand, LMS-assisted classrooms may help reduce (or entirely eliminate) papers and increase student-to-student interaction both in and out of class.
Another reason LMS-assisted classrooms are beneficial for teachers:
No more lost USBs.
I personally haven’t carried a USB in 3-4 years because I store all my lessons, PPTs, documents, and resources on my classroom website (or in Google Docs which can be used in collaboration with my website). Besides that, simply by relying on a USB stick, you are risking spreading viruses between unprotected PCs or even absentmindedly leaving it behind after class.
Are you smarter than a College Freshman?
And another reason to start looking into setting up an LMS is because high-schoolers these days are learning this kind of technology themselves as graduation requirements.
In a document (created in 2006) I downloaded from the San Diego Unified School District that outlines High School Technology Compentencies, the following are the THREE level of Web Authoring competencies they seek for their students:
Basic: Understand web authoring terminology, how to use templates, and district policies on copyright, ethics, privacy, and security
Intermediate: Identify, prepare, create, and upload materials to a web publishing platform
Advanced: Understand and be able to use CSS code, Flash video, downloads, forms, and databases
EdTech is transforming K-12 learning with an intensity and at a pace that is disruptive, creative, and unpredictable.
Students are no longer content to be passive recipients of information. Few kids can sit behind a desk when they have smart phones or iPads in their possession.
The higher education business model is threatened by the need for cheaper delivery of services, content, and learning.
Pricing, Access, Connectivity, Competition – It’s all about Economics.
Actually, what we’re talking about here is the FUTURE of education. Every other industry in the world has seen a radical technological reformation and evolution. Education is now also beginning a radical change in the way school and learning happens, but where will our place be in this period of transition and change?
I think the main reason that more people don’t get more involved with EdTech is FEAR. They are afraid of the unknown, afraid of learning (difficult) new things, or afraid of being left behind.
But, I want to alleviate your fears a bit and argue that WordPress is a (comparatively) easy solution for beginning to get more of your own classes online.
Step 1B: Why WordPress?
The #1 web publishing CMS (Content Management System) in the world – powering 23% of all the world’s websites.
FREE. unlimited. awesomeness.
But what about some of the other LMS’s you may already be familiar with?
WordPress is not “easy” as in “post-on-Facebook-easy” but compared to the many other options out there, it is surprisingly easy. I’ve even transferred clients to WordPress fromJoomla and Moodle after spending significant time with them in the backend trying to fix things how they wanted.
The WordPress Post editor closely resembles a Microsoft Word document editor and is just as easy to publish with.
If you can Word, then you can WordPress.
In fact, in a 2014 survey of WordPress users around the world, the company found out that 91% of WordPress sites took less than 4-5 weeks to make. This is comparatively easy! And I have experience putting together basic sites with all the elements in only ONE week or less.
WordPress already powers 1 in 5 sites you visit on the web, and it’s still growing.
2014 was the first year that non-English downloads surpassed English downloads
WordPress.com gets roughly the same number of monthly unique visitors that Facebook.com gets so up-time and security are big deals. The WordPress.com development team pushes updated code to the core between 60-80 times PER DAY, so both of those facts should give you a feel for just how reliable this service and software are.
If you choose to go self-hosted, however, all that depends primarily on your web host. But the following is a list of some of the top hosts in the world:
I’m NOT an advocate for a strictly MOOC-style LMS. These systems conduct courses primarily online with minimal teacher-student interaction except via the forums. Granted, some teachers are very participatory in the forums, but not all are – and online forums still leave something to be desired compared to the traditional model of in-class, face-to-face, teacher-student and student-student interaction.
Besides that, MOOCs are COMPLICATED to implement, especially without a dedicated team behind them.
I feel that, at least as far as online course websites are concerned:
Simplicity is the Ultimate Sophistication.
Leonardo da Vinci
Therefore, when considering the following options for course website preparation, I’d recommend:
Level of Instruction: prepare a SINGLE course (at least a first)
Time (Schedule): allow a modified time schedule for students to access the site
Role of Online Components: enhanced
Teacher role: Teacher supports
Student role: Teacher-guided learning
Student support: School mentoring
Student to Teacher ratio: 2-3x Traditional
But, for simplicity’s sake, here are the TWO MOST PRACTICAL ways you can implement an LMS website in your classroom:
Make homework include online interaction
Step 2B: How can we use WordPress to create an LMS?
There are TWO options for using WordPress to create an LMS:
Is a hosting SERVICE where you can get a FREE site and username at their domain (http://yourname.wordpress.com)
Is limited in freedoms, but provides paid upgrades and is still a viable option for class websites
Hosts the (downloadable) SOFTWARE and all documentation, but you are required to find your own self-hosting solution (http://www.yourname.com)
Is virtually unlimited in customization options
If you go self-hosted, many of the top hosting providers offer a “One-Click Install” from the CPanel (Control Panel) of their site. It’s a simple matter of point-click-wait-5-minutes and you’ll have the FULL WordPress software up and running on your domain.
Here’s a list of recommended hosting providers again:
In WordPress, you will only need to understand (a minimum of) 5 key concepts to be able to effectively communicate the above 6 aspects to your students. They are:
Pages are hierarchical, “stand alone” articles on your site. Though they have publication dates (and can be scheduled for automatic future publication), they do not “flow” as a blog would. Pages are not inherently “related” to each other and they ARE NOT categorized by Categories nor Tags (more later).
If you want a Page to have some kind of relation to another Page, you must assign it a “Parent” in the Page Attributes widget in the Page editor.
Pages will therefore act like individual menu items (they will be automatically added to your main menu if you don’t create one manually) – and “Parent” Pages will act as the top-level dropdown menu containing any “Child” Pages beneath them.
Pages may also utilize “templates”. These will give your Pages a different output on the front of the website and may look like any of the following:
And so on
Posts are chronological (non-hierarchical) articles that “flow” along the Blog page, Home page, or Archive pages as they are written and published.
Posts are grouped together by Categories (that act like “buckets” or Folders), and Tags (keywords that are used to Search the site).
Posts may also utilize “Formats” that style certain Post types differently. For example, you may have different styles for:
Regular (Standard) Posts
Aside Posts (without a title visible on the Blog archive Page)
Status Update Posts
On the front-end of a site, Categories may be visible as Folder names for Month or Topic, or in the Breadcrumbs (the “You Are Here” collection of links at the top of a Post), or as individual Menu items.
(On the front-end, you won’t really be able to SEE the difference between Categories and Pages as they appear in the menu unless you click on the link. If it’s a Category, there will be a long list of Posts; if it’s a Page, there will be only ONE Page.)
With Categories, I usually assign each of my Classes to a separate Category. That way, when the students click on the Category name, they are taken directly to an ongoing blog list of ONLY Posts for their class.
On the front-end of a site, Tags may be visible in a “Tag Cloud” (a collection of frequently used keywords throughout the site), or in the footer meta (a collection of data at the bottom) of a Post. You can also Search for Tags as these are WordPress’s “keywords.”
With Tags, I usually add the keywords for the lesson subject – such as a grammar point we’re studying or the key concepts to understand.
WordPress Media is unique in TWO primary ways:
You can Drag-&-Drop media from your Desktop directly into the Post editor window to upload files.
You can Copy-Paste URLs from popular websites like YouTube and Twitter to get immediate, automatic embeds of those videos and tweets (among other things). No more copying over embed codes!
The WordPress editor also provides you with a view of what your Post will ACTUALLY look like on the front-end even as you type it and before publishing it.
Step 3B: Plugins add Power
The above 5 functions are available both on WordPress.com and with the WordPress.org software. However, if you REALLY want to power-up your LMS, going self-hosted and installing your own plugins is the best way to go.
The following lists provide (at least) FOUR plugin options for EACH of the 6 aspects of learning previously discussed:
This post originated as “A Simple Roadmap to Get Up & Running with WordPress”, but it gradually morphed into something a tad more complex. So here is “A Comprehensive Overview of WordPress Site Owner Roles.”
While this post originated as “A Simple Roadmap to Get Up & Running with WordPress”, it gradually morphed into something a tad more complex, so we’ll call it “A Comprehensive Overview of WordPress Site Owner Roles.”
For starters, here’s a list of the different roles you can expect to have when you start and maintain a WordPress (or any other) website and the most basic tasks each will deal with (click any role to be taken directly to its description):
TECHIE:performs the initial installation of the website
Each of the roles above has its own complexities and full blog posts (even books) have been written about each one. But, I will try to keep this simple and focus primarily on the main 3-5 tasks or objectives that you will need to perform in each role on a BASIC level.
(I will also provide a list of 5-6 additional tangential considerations for each role that may yet sprout off into supplementary blog posts for each.)
Performs the initial installation of the website.
The 3 major tasks a “techie” must deal with are:
Domain name registration
File transfers (FTP Clients)
When running WordPress, you have TWO options for how to host your site:
WordPress.org = a software download that you install yourself (or through a third-party hosting company) on a domain of your choice (and purchase)
Hosting your site on WordPress.com is pretty self-explanatory. You sign up for a FREE blog and create a username that becomes your blog’s initial URL (unless you upgrade) at yourname.wordpress.com. Simply head over to their new blog creation page and follow the steps to get started.
Downloading the software from WordPress.org and installing it on your own site (for example, yourname.com) is slightly more complicated, but not by much. You have two simple options to get started:
(What is a One-Click Install? Simply: you choose the software you want to install, click “Install”, select the destination, and the webhost’s installer performs all the default installation steps for you. The next thing you’d do is visit your site and log in to your newly installed website system.)
A Spattering of Web hosting Providers
While whole blog posts have been written to guide users through the choice of a plethora of web hosting providers, I’ll simply provide a list with my own experience below:
Dreamhost.com – affiliate (I’ve been a happy customer since 2009 – service keeps improving – hosting around $10/month)
Bluehost.com (My second choice – hosting for as low as $3.95/month)
Hostgator.com (Another highly recommended company, though I have no direct experience with them – honestly their branding and logo didn’t meet the same quality as the previous two, so I didn’t bother getting to know them better)
GoDaddy.com (Most famous for Domain name registrations as far as I know though they do provide hosting as well)
WPEngine.com (A proprietary WordPress hosting provider – you’ll pay a premium but also get premium service)
Domain Name Registration services I’ve used
Dreamhost.com –*affiliate (I just like having domain name registry and hosting all together)
Nameboy.com (This is a good place to go if you have TWO keywords that you want to blend together in different combinations – including hyphenated options)
Namecheap.com (This site provides the greatest number of secondary TLD recommendations if your primary choice is not available)
Lastly, a techie will deal with the uploading, downloading, transferring, and modification of blog files (installation files, images, videos, podcasts, etc). This will likely be an ongoing process, so you may as well get familiar with it now. The following is a list of FTP (File-Transfer Protocol) clients that I’ve used and recommend:
FileZilla (my #1 recommendation because it is cross-platform and well-designed)
CyberDuck (an FTP client I’ve used extensively on MacOSX – now also available for Windows)
Sets and manages up the backend of the website.
The 3 major tasks an “admin” must deal with are:
Username + Password
To start off with, good username and password choice goes a LONG way to ensuring the safety of your blog.
2 Top Tips (Username + Password):
Username: NEVER EVER EVER EVER pick “admin” as your username. This is the old default WordPress admin name, so everybody (hackers) and their dogs (hacker dogs) know it. This will be the FIRST thing someone tries if they want to hack your site.(Too late? Create a new “admin” account with a new username, then transfer all the posts and content over to the new username and delete your old “admin” account. Or find out how to change the “admin” account in the database tables – phpMyAdmin – here.)
Password: “K33P C4LM AND 5P34K L337”
(i.e. “Keep Calm and Speak Leet” – Leet (L337) is kind of a techie way to write using numbers and symbols in place of letters that look similar)
5 Top Password Creation Tips:
Use a combination of UPPERCASE, lowercase, numb345, &$ymb@!$
The following are a list of additional topics that an Admin may need to deal with and be familiar with. Each one is worth its own (extensive) Post (or book), so I will revisit them later:
Updates & Site Tools
Takes care of the frontend of the website.
3 primary tasks a “designer” should address are:
The WordPress Theme Customizer (front page style editing)
First Steps (in the “Appearance” Menu)
Customize – In the WordPress Customizer you can modify a variety of frontend design elements including:
Static Front Page (this means you set your front page to a specific Page and your blog archive to a different Page)
Menus – Tip: to make dropdown menus, simply click-and-drag one menu item (in your “Menu Structure” window) underneath and to the right of a preceding (its “parent”) menu item
Widgets – Tip: if you’ve enabled some widgets and want to save their Settings for later, there’s a location at the bottom of the “Available Widgets” area (called “Inactive Widgets”) that you can click-and-drag those widgets you want saved into
Detours (Later Topics)
The following are a list of additional Design topics that may be of interest and will be revisited in later Posts:
Custom HTML in Posts
Basic Graphic Design
4. Content Creator
Is responsible for pushing NEW content to the website on a regular basis.
The 3 most important things a “content creator” must understand are:
The Difference between Posts and Pages
The Difference between Tags and Categories
It’s long been a mantra of the web: CONTENT IS KING and today is no exception. If you aren’t regularly pushing NEW and useful content to the forefront of the supersaturated Inter-webs, you’re missing a valuable opportunity and a good percentage of the consumer population. People are always on the look out for the “newest” or “hottest” so as a Content Creator, you’d really do yourself (and your audience) a good service if you regularly deliver that which they seek.
My own personal process for Content Creation looks like this:
Plan (5-30 min)
Research (30 min-1 hr)
Write (1-2 hrs)
Edit (10-30 min)
Publish (1 min)
So, my own process for blogging may take anywhere between 1-4 hours. I tend to put a lot of emphasis on getting facts right, delivering useful information, and back-linking to the things I find, so that can end up taking up a good chunk of my time.
Embeds : WordPress is capable of automatically embedding certain kinds of media from various webpages including videos, PDFs, presentations, and tweets – all you need to do is copy-paste the URL of a given page into your Post editor and WordPress handles the rest. A (non-comprehensive) list of sites is below:
Uploads : Uploading your own media to WordPress is as simple as clicking and dragging the item from your Desktop directly into the Post editor. The Media Uploader automatically pops up and gives you more options. You are able to change the file upload size in your WordPress settings, but by default the max upload size is 10MB or so.
Featured Images : A Featured Image (formerly known as “Post thumbnails”) is similar to a cover image for an article. Different themes handle these differently, but this is THE image that will primarily be associated with your Post (if you assign one) on your site and through Social Media when the Post gets shared. To add a Featured Image, scroll to the bottom of the sidebar in the Post editor page to find an Image Upload meta-box called “Featured Image.”
The Difference between Posts and Pages
Posts : non-hierarchical articles that are referenced chronologically and can be categorized by Tags and Categories
Pages : hierarchical articles that can be assigned “Parents” (those Pages that would form the head of a dropdown menu) and can NOT be categorized by Tags and Categories
The Difference between Tags and Categories
Tags : non-hierarchical keywords used for Searching (like “green”, “big”, “important”, etc)
Categories : create a kind of folder structure that can be used to subdivide articles (like “WordPress”, “Classes”, etc) – these ARE hierarchical
Detours (Later Topics)
The following are a list of additional topics that Content Creators may find of interest and will be revisited in later Posts:
The 3 main things a “developer” is likely to deal with are:
Custom CSS code
Custom HTML code within Posts & Pages
As getting into the details of a Developer’s work is far more complex than this Post warrants, here’s a list of further topics to be discussed later in subsequent Posts:
Detours (Later Topics)
Plugin Development principles
Theme Development principles
How to make contributions to the WordPress core
WordPress development best practices
Join the Discussion
I hope you enjoyed (and got a lot out of) this overview of the various roles a WordPress site owner needs to understand. If there are any questions, comments, or suggestions to improve this Post or for later topics to be covered, please leave me a Comment in the section below. Thanks!~
WordPress currently powers over 25% of the Internet’s top sites. What is it and what makes it so popular and powerful? This talk introduces the audience to the “democratization of publishing” that is WordPress.
Hello, my name is Aaron Snowberger. I’m a hobbyist WordPress theme and plugin developer, graphic designer, and English teacher at Jeonju University. I run a WordPress Meetup and workshop in Jeonju and was invited here today to give an overview presentation about WordPress. So, this talk is a modified version of the first one I gave in our Jeonju Meetup in January.
I usually present in English, but was encouraged to try this presentation entirely in Korean, so please give me some grace – it won’t be perfect, and I’ll try not to bore you – at least my PPT is pretty, right?
In this talk, I will address 4 main points that span the topic “Open Source, WordPress, and the Community.” They are:
“Source” is the computer code that creates a program
So, “open-source” is computer code that is freely available to the general public – for anyone to use, change, or share with anyone else. It’s a de-centralized model of software production that provides extensive code documentation to the public for free and encourages community contribution to rapidly build upon and improve the original program.
Contrast this with “closed-source” code and technologies that are often developed in-house to be sold. In some cases, there may be criminal penalties for copying, modifying, disassembling, or even studying the internal source code.
More developer support (anyone, anywhere can work use it)
More secure (thousands of people can view and fix the code)
Extended Community Support
Less choices and customer confusion (there’s only ONE version of the software)
More unified experience (Apple always looks like Apple)
More profitable (charge developers to use it, lock out competitors)
Content Management System
What is a CMS?
Years ago, most websites were built page by page, coded by hand, and filled with static content. (I built some of those websites.) These days, websites are filled with a much greater quantity of dynamic content that is often updated on a daily basis.
In order to make the administration of large, fast-changing websites more manageable, Content Management Systems (CMSs) were created in the late 1990s to reduce the need for hand-coding every page and to create a web-publishing interface that more closely resembles a word processing program like Microsoft Word. This enables anyone with an Internet connection and basic word processing skills the ability to quickly create and publish dynamic content to their webpages.
Additionally, website components like the header, the footer, the sidebar, and the various content pieces are broken up into individual files that can be managed separately and loaded dynamically when a website is opened.
It is much nicer to be able to manage each website piece individually (only one code file) than needing to open (up to dozens of) separately coded webpages to modify something as minor as a changed logo in the footer. (I also used to do that.)
GPL Version 2
What is the GPL2?
GPL stands for GNU General Public License (GPL) version 2 and is the legal license that covers WordPress and its source code. The GPL2 is copylefted (a play on the word “copyright”), which means that any software under its license that is used, modified, or distributed must retain the same license terms in order to be legally distributed.
This means that software companies or other developers cannot legally change the license of WordPress code or derivatives of it to closed-source. WordPress and its derivatives are therefore “forever free” under the GPL license for everybody.
In a recent interview, WordPress co-creator Matt Mullenweg described open-source code as:
The most important idea I’ve been exposed to in my life-time … it’s like a Bill of Rights for software … it basically says, “Here are four freedoms that are inalienable rights that you have when you use open-source software.”
The software is completely FREE to:
Modify or build upon
Place under warranty
So long as you:
Track dates/changes in the source files
Keep all modifications under the same GPLv2 license
WordPress was started as a joint software project by Matt Mullenweg and Mike Little in 2003. It was a fork of another open-source blogging platform called b2 (cafelog) that Mullenweg had built a blog on.
In his own words:
[WordPress] started as a fork (or a derivative) of another open-source project. There was this thing out there called b2 which I was using and blogging with myself and the creator disappeared, so the development stopped. Myself and this guy in England, Mike Little, picked it up and kept working on it.
The two eventually met personally in London in 2005, the same year that Matt formed the company Automattic (notice the “Matt” in there) and WordPress.com went live.
Automattic is the driving force behind WordPress.com and some of WordPress’s most popular plugins like Akismet for blocking spam comments and Jetpack for powering up your WordPress installation.
This is a topic I found necessary to clarify in the Jeonju Meetup because many of our first visitors were confused about the difference between the two.
The major difference between WordPress.com and WordPress.org is that the .com is a SERVICE and the .org provides the SOFTWARE.
The major difference between a blogging SERVICE and blogging SOFTWARE is that a SERVICE (like Wix.com or Squaresoft.com) lets you use a standard installation of the software on their own servers (but are limited in your ability to customize the code yourself). But by downloading open-source SOFTWARE on your own, you have the freedom to fully customize any aspect of the code yourself. You are only required to find your own website host.
Think of it as the difference between renting a house and buying one.
WordPress.com is the renter you don’t really “own” (http://yourname.wordpress.com) – you can’t change all the wallpaper to exactly how you might like, and you have to call the landlord if something breaks
WordPress.org provides the home you “own” at your chosen address (http://www.yourname.net) – it comes with the complete freedom for you to redecorate and redesign as you please
So, in this way, WordPress.com is the best place for people starting out with the software to learn how it functions and how to best use it. Then, once you’re comfortable with it, you can move over to WordPress.org to download your own version of the software.
Is a hosting SERVICE
Is like a house you rent
Is limited in freedoms, but provides paid upgrades
Hosts the (downloadable) SOFTWARE and all documentation
Gives you access to a house you can “own”
Is virtually unlimited in customization options
How big is WordPress?
WordPress currently powers over 60,000,000 websites around the world – that’s 23% of all the world’s websites – and Automattic is valued at over $1 billion.
Whatever your mind can conceive and believe, you can achieve. – Napoleon Hill
#3: It’s Scalable
WordPress.com is the world’s largest SINGLE INSTALLATION of WordPress. There are over 500 million users with their own unique database tables that are running on a SINGLE code base. Now that’s pretty impressive!
In the same way, WordPress can scale to meet any of your website needs – whether you are a blogger writing a daily diary, or a Fortune 500 company that needs individual store sites for each of its +1,000 stores (Best Buy).
#4: It’s Growing
In 2014, there were 81 WordCamps (large-scale WordPress conferences) held in over a dozen countries. And 2014 was also the first year that non-English downloads of WordPress surpassed English downloads. This shows the company is growing internationally as well as in the US market.
Additionally, the number of monthly unique visitors to WordPress.com is comparable to the number of monthly unique visitors to Facebook – though the company is much smaller.
In fact, after transferring one site (TheJeonjuHub.com) from static HTML to Joomla! in 2011, I ended up transferring it over to WordPress within 2 years to better enable the content creators of the site to work. Joomla! menus and the backend just ended up being more complex than they needed to be.
If you can Word, then you can WordPress. The Editor interface is virtually the same.
#6: It’s great for Platform Building
If you want to sell anything, you need a platform. WordPress is an amazing platform building tool that makes it easy for anyone to take a simple blog with 30 views per month to over 30,000 views per month (I speak from experience).
If you have a story worth telling, then you have a platform worth building.
#7: Korea is a Growing Market
According to a graph of Google Search trends I recently looked up, South Korea has a Search Volume Indexof only 15 with regards to searches for WordPress and WordPress related topics. Compare this with neighboring countries and you can see there is a lot of potential for growth in Korea:
South Korea: 15
United States: 46
Additionally, there is great support for WordPress in Korean provided by the WordPress community here.
#8: The WordPress Community
The WordPress community is quite large and very supportive, helpful, and friendly. WordPress Meetups are held all over the world to teach and help others build WordPress websites.
I’ve begun a WordPress Meetup in Jeonju because I wanted to a place to get together regularly with other WordPress users help them build their websites. I actively encouraged the Liberal Arts department at Jeonju University to start using WordPress for “flipped classrooms” and teacher websites and a majority of the 33 foreign teachers took my advice and created their teaching sites on WordPress.com. I’ve run a number of workshops and helped individual teachers improve their sites on numerous occasions, so I decided it was about time to do something more regularly.
I’d initially begun the Meetup with the idea to only target foreign expat users who might want to run a teaching site or blog, but thanks to my invitation here and the encouragement to present in Korean (something I’m still quite shy about), I’ve decided to extend the Jeonju Meetup for an extra hour or two and invite Korean speakers to come in and share about WordPress there as well. (Hopefully I’ll also be able to “level up” my Korean speaking skills there.)
WordPress Support Staff call themselves “Happiness Engineers” and make it their job to “deliver happiness” on the user forums:
안녕하세요. 제 이름은 에런 스노버거예요. 저는 워드프레스 테마와 프러그인 취미 개발자, 프리렌스 그래픽 디자이너, 그리고 전주대학교 영어 교수입니다. 저는 전주에서 워드프레스 미트업과 워크숍을 주최하고있으며 여기 서울 미트업으로 오늘 저는 워드프레스에 대한 일반적 개요를 말씀드리려고 이곳에 초대 받았습니다. 그래서, 이 프리젠테이션은 첫번째 전주 미트업 프리젠테이션을 조금 수정한 것입니다.
보통 영어로 발표를 하지만 이 번에는 제 친구로부터 한국말로 발표를 해 보라는 도전을 받아서, 그렇게 할겁니다. 한국말은 제 두번째 언어니까, 조금 인내와 자비를 베풀어 주시기 바랍니다. 그리고, 완벽하지는 않지만 지루하시지는 않을 거예요. 적어도 제 PPT 정말 멋지죠?
제 발표에서는 ‘오픈 소스, 워드프레스, 그리고 커뮤니티’라는 주제를 확장할 네가지 주요 포인트를 알려드리겠습니다:
저는 전주에서 워드프레스 미트업을 시잣했는데 이는 다른 워드프레스 사용자들이 웹사이트를 만드는 것을 돕기 위해 정기적으로 서로 만나는 자니를 마련하고 싶었기 때문입니다.
전주대에서 외국인 교수들한테 여러 워드프레스 워크숍을 열었고 개인적으로 1대1 워드프레스 웹사이트 조언과 훈련을 했습니다. 그래서 제 생각에 이베 정기적으로 워드프레스 도움을 위한 자리를 마련해야 갰다고 생각했습니다. 전주 워드프레스 미트업을 2015년 1월부터 시작 했습니다.
그러므로 지금은 ‘해피니스 엔진이어‘라고 생각하고 있습니다. 워드프레스의 ‘해피니스 엔진이어’는 워드프레스 포럼에서 도움과 행복준 종업원이지만 진짜 종업원은 되면 필요 없습니다. 필요한 유일한 것은 다른 워드프레스 사용자에게 도움과 행복을 주려고 싶습니다. 마냑 ‘해피니스 엔진이어’의 생각을 알고 싶으면, 재포스.com의 CEO 토니 셰이의 책 ‘딜리버링 해피니스‘을 읽어 보세요. 이 책은 모든 ‘해피니스 엔진이어’에 추천 도서입니다.