Move WordPress media uploads to a subdomain

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:

  1. To speed up my site by allowing simultaneous downloads from multiple sources at once (almost acting like a mock CDN)
  2. To keep things organized and make taking site backups easier (by backing up the database and files separately)
  3. 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

  1. Create the subdomain on your host files.sitename.com for example
  2. Download ALL the old media files from your WordPress /wp-content/uploads folder via FTP
  3. Upload ALL the media files to your new subdomain
  4. 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.

  1. Change your Live Image URLs with a database Search & Replace plugin (this is easier than phpMyAdmin). Two good options are:
    1. Search & Replace by Inpsyde GmbH
    2. Better Search Replace by Delicious Brains

(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.)

  • Search: http://www.oldsitename.com/uploads
  • Replace: http://subdomain.sitename.com/media

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).

  1. Redirect images that are already indexed by search engines. Do this by adding the following to your .htaccessfile:
RedirectMatch 301 ^/wp-content/uploads/(.*)$ http://img.yoursite.com/$1
  1. 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

  1. 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:
[ gallery type="rectangular" link="none" size="medium" ids="31183,31184" ]

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.”

  1. 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.

  1. Even after updating and changing everything, the images on my subdomain did not show up inside my Media Library.

Resources

Welcome to 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.

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.

Login

First of all, we need to ssh into the server and access the site.

$ ssh username@site.com
$ cd site.com/wordpress

Change user password

$ wp user list
+----+-------------+---------------+------------------+---------------------+---------------+
| ID | user_login | display_name | user_email | user_registered | roles |
+----+-------------+---------------+------------------+---------------------+---------------+
| 1 | myusername | myusername | user@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:

$ wp core update
$ wp core update --version=4.7.1

$ wp plugin update --all
$ wp plugin status
$ wp plugin install plugin-name
$ wp plugin activate plugin-name
$ wp plugin deactivate plugin-name
$ wp plugin delete plugin-name

$ wp theme update --all
$ wp theme status theme-name
$ wp theme install theme-name --activate

Many of the plugin and theme commands are quite similar and you can do certain things like stringing together some of them (wp theme install theme-name --activate).

Check your config file or databases

A couple more useful commands are to check out your wp-config file’s constants and globals, and work with your database:

$ wp config get

$ wp db size --tables
$ wp db optimize
$ wp db repair
$ wp db export filename.sql

Clean up post revisions

Sometimes you just need to clean up your post revisions, especially if your site is old or has loads of them. But first, you’ll need to install an additional wp-cli package.

$ wp package install trepmal/wp-revisions-cli
$ wp revisions clean

Or, for specific posts and/or dates:

$ wp revisions list --post_id=ID
$ wp revisions clean --post_id=ID --before-date="YYYY-MM-DD"

Remove all spam comments

This one looks to be a great help, especially for big installations that get a lot of spam. But there are quite a few other commands to help manage comments.

$ wp comment delete $(wp comment list --status=spam --format=ids)

Resources

WP Migrate DB Manually : Multisites & Single Sites

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

  1. Setup your <TARGET> site first
    1. Install WordPress with default options
  2. Migrate plugins, themes, and uploads
    1. Move them from the <ORIGIN> site -> the <TARGET> site *
    2. Using FTP, I download what I want to keep to my Desktop
    3. Then, upload them back to the NEW site (watch a video, it’ll take a while)
  3. Install WP Migrate DB on both sites and open it

migrate_db

Single Site -> Single Site

  1. From the <TARGET> site:
    1. Copy the URL -> <ORIGIN> site’s “New URL”
    2. Copy the file path -> <ORIGIN> site’s “New file path”
  2. On the <ORIGIN> site:
    1. Export the SQL file
  3. Prepare <TARGET> site’s wp-config.php file **
    1. Open <ORIGIN> site’s wp-config.php file
    2. Find $table_prefix down in the file and copy that table prefix String
    3. Replace $table_prefix String in the <TARGET> site’s wp-config.php with the <ORIGIN> site’s String
    4. Save the modified <TARGET> site’s wp-config.php
  4. Open phpadmin on the <TARGET> site
    1. Drop all <TARGET> site’s default wp_ tables
    2. Import <ORIGIN> site’s SQL file (from WP Migrate DB)

Multisite -> Single Site

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:

Extracting a Subsite from Multisite to Create a New Single Site Install

These are the steps I followed (and some notes about mistakes I made):


Notes:

* Originally, when you want to move your uploads folder from Multisite to a single site, you’ll notice another folder in the uploads folder:

  • /uploads/sites/4/2016/
    • The sites folder contains all the uploads for each subsite
    • The 4 (or other numbered folder) is the site ID (you can find the site ID by going to that particular site’s admin Page)
      • http://sitename.com/wp-admin/network -> Sites -> Subsite name
      • http://sitename.com/wp-admin/network/site-info.php?id=4
  • So, you move the content from the site ID’s folder to your <TARGET> site’s uploads folder
    • /uploads/sites/4/2016/ -> /uploads/2016/

** This also means that your $table_prefix String in wp-config.php will include this site ID between the wp_ and the rest of the String:

  • Ex: $table_prefix = 'wp_ex54gTv'; will be 'wp_4_ex54gTv' in the SQL database for your particular subsite

1. Prepare the SQL Export

  1. Migrate plugins, themes, and uploads
    1. Move them from the <ORIGIN> site -> the <TARGET> site *
  2. Replace URL and file path from the <TARGET> site:
    1. Copy the URL -> <ORIGIN> site’s “New URL”
    2. Copy the file path -> <ORIGIN> site’s “New file path”
    3. Click “Add Row” to add subsite details
    4. //subsite.sitename.com -> //newsite.com
    5. Click “Add Row” to replace your uploads folder Strings
    6. /uploads/sites/4/ -> /uploads/

migrate_db_subsite

Now, you’re ready to Export the file.

DeliciousBrains says:

  1. Expand the “tables” section and select the “Migrate only selected tables below” option.
  2. 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:

Source: DeliciousBrains.com
Source: DeliciousBrains.com

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.


Notes:

* 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 overwrite it with the main site data.


2. Prepare the SQL upload

  1. After preparing everything as described previously, Export the SQL file
    1. I turned OFF Gzip so I could immediately modify the file after download
  2. Modify the .sql file in any code or text editor
    1. 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).
    2. 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
    3. Find and Replace any instances of wp_4_ with just wp_
    4. Save and close the file
  3. Open phpadmin on the <TARGET> site
    1. Drop all <TARGET> site’s default wp_ tables
    2. Import the NEW SQL file (you just modified)
  4. Run cleanup
    1. 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.
    2. Alternatively, it looks like this SQL script will do the job as well

Problems?

  1. 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
  2. Manual DB import fails? Don’t use GZIP and export it again (larger file size)
  3. 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”
  4. 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/
  5. 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.

A Roadmap for WordPress as LMS

This talk attempts to give real, practical tips – and a roadmap – for developing a Learning Management System for your classroom with WordPress.

This talk was presented at the KOTESOL National Conference in Seoul on May 30, 2015. With this presentation, I tried to reduce the amount of theory (from my last LMS talk) and increase the amount of practical application steps that teachers could use to begin creating their own LMS websites with WordPress.

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.

The Roadmap

Review: The 6 Things an LMS Needs to Do

6-aspects

  1. Communicate Objects (Courses, Lessons, Modules)
  2. Show Learning Timelines (Syllabus)
  3. Deliver Content (Dripped content = content that is only accessible at specified times)
  4. Assess & Track Student Progress (Quizzes, Tests, Attendance, Participation, Gradebook)
  5. Communicate with Students (Comments, Forums, Wikis, Chat)
  6. Provide Ongoing Resources (in some sort of library or collection)

Step 0: Get a website

You basically have 2 options: FREE or PAID and both have their upsides and downsides:

  1. FREE Advantages and Disadvantages
    1. (+) It’s FREE
    2. (-) Themes, plugins, and design options are limited. Plus, your URL will be either yourclass.wordpress.com or yourclass.edublogs.org – you won’t own your own .com
  2. PAID Advantages and Disadvantages
    1. (+) You can choose what to pay for and how much you’re willing to spend. You can buy your own yourclass.com URL, and can basically make any theme, plugin, and design choices you want
    2. (-) You pay for it. Some highly specialized themes, plugins, or features are sold separately

If you want a completely FREE site, you can still build a very functional classroom website in WordPress. I used a totally FREE installation of WordPress for the first 2 years of my LMS.

The remainder of this post will focus on creating a FREE WordPress LMS, although I will highlight some of the paid options you may wish to consider.

FREE Hosting Options

  1. Go to http://www.wordpress.com and sign up for a FREE account (you can upgrade later)
  2. Go to http://www.edublogs.org and sign up for a FREE account (you can upgrade later)

PAID Hosting Options

I’ve used Dreamhost.com since 2009 and have hosted dozens of personal and client websites there. You can manage every aspect of web hosting from there including:

  1. Setup Step 1: Buying your URL Domain name
  2. Setup Step 2: Installing WordPress with a One-Click Installer
  3. Setup Step 3: Setting up email inboxes @yourclass.com
  4. Support: Dreamhost also has a large Wiki for support for its services and
  5. Support: They have a very helpful support staff and are active on Twitter

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.

Additionally, you should get to know “The First FIVE Components of WordPress to Understand When You’re Just Starting Out” (click link to view the full description of each). In brief, they are:

5-key-concepts

  1. Pages
  2. Posts
  3. Categories
  4. Tags
  5. Media

In your LMS class site, you can use each like this:

  1. Pages = semester-long use (static) – use for Class homepages, Syllabus pages, About pages, Resource pages
  2. Posts = daily use (chronological) – use for Class lessons, Homework assignments, or Reviews
  3. Categories = folders – assign each Class a separate folder to store all Class materials within it
  4. Tags = keywords – tag Posts with grammar points, topics, or subject content to allow easy searching and linking of related Posts later
  5. 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

Step-by-Step

  1. Gather your teaching materials and content
  2. Create a NEW Post for every Lesson
  3. Type (or copy-paste) your Lesson into the Editor and give it a Title
  4. Upload class materials and media
  5. Assign a Category using the Name of the Class (Freshmen Conversation 1B, for example)
  6. Add Tags based on the subject matter (be verb, introductions, conjugation rules, etc)
  7. Schedule the Post (if you want it to be available later, not immediately)
  8. Publish the Post

Plugins that may be helpful

1-commobjs

  1. Easy Classes
  2. WP Teacher
  3. WP Course Manager (like a course catalog)
  4. EduHack (creates a course catalog showing relationships between courses and prerequisites)
  5. Educator (LMS)
  6. CoursePress (LMS)

Step 2: Learning Timelines (Pages)

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:

  1. Freshmen Conversation
    1. Freshmen Conversation 1A
    2. Freshmen Conversation 1B
    3. Freshmen Tues/Thurs
    4. 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:

  1. myclass.com/freshmen-conversation/
    1. myclass.com/freshmen-conversation/freshmen-conversation-1a/
    2. myclass.com/freshmen-conversation/freshmen-conversation-1b/
    3. myclass.com/freshmen-conversation/freshmen-tues-thurs/
    4. myclass.com/freshmen-conversation/freshmen-student-center-class/

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).

Step-by-Step

  1. Create a Page for each Class
  2. Optionally create one “Category” main Page and Sub-Pages for each Class under that
  3. Copy-paste in your syllabus OR type it up in an unordered list OR table (using a plugin)
  4. Link each Post/Lesson from your Class Category to its syllabus item
  5. 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

2-timelines

  1. Easy Table (can be used directly in the Post/Page Editor with the syntax required)
  2. TablePress (has its own interface, slightly more complicated and versatile)
  3. Websimon Tables (similar to TablePress with its own interface)
  4. The Events Calendar
  5. Weekly Class Schedule
  6. My Calendar
  7. Booking Calendar (allow students to schedule a meeting with you through your site)
  8. Online Lesson Booking (schedule a 1:1 lesson or meeting)

Step 3: Deliver Content (Scheduled Posts)

“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).

Step-by-Step

  1. Write a Post (Lesson) for you Class
  2. Assign it a Category (Class folder) and add Tags (topics / keywords)
  3. Change the “Publish On” date in the Publish Meta Box
  4. “Schedule” your Post

Plugins that may be helpful

3-delivery

  1. Show/Hide Content at Set Time
  2. Timed Content
  3. Table of Contents Plus
  4. Simple Course Creator
  5. Simple Course Creator – Updates (shows updated course content in a timeline)
  6. WP-Members
  7. 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:

  1. WordPress Comments on Class Posts
  2. 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

Step-by-Step

Add Authors

  1. Register new Users on your site by going to the Users -> Add New menu item
  2. Assign student roles as “Author” and register them
    1. 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)
  3. Allow students to login and write essays (Posts) in their Class Category – under a Sub-Category of your choice
  4. Edit their work and Publish it – you can write comments in the Post itself or in a Comment below it
    1. 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

Take Comments

  1. Go in to the Settings -> Discussion menu to adjust Comment settings appropriately
    1. “Allow people to post comments on new articles”
    2. “Comment author must fill out name and email”
    3. “Comment author must have a previously approved comment”
  2.  Assign students the homework of reading a Class Post and Commenting on it
    1. 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).

Plugins that may be helpful

4-assessntrack

  1. Add Multiple Users
  2. AN_Gradebook
  3. Grading System Daxxip (VERY simple – just assign a grade and make it visible on a Post)
  4. Watu Quiz Tool
  5. Quiz Tool Lite
  6. Easy Quiz Player
  7. Exam Matrix
  8. BadgeOS (Give badges for achievements)

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.

Step-by-Step

  1. Enable Comments on your site (discussed above)
  2. Add Plugins that enhance both your Comments and other forms of communication
    1. Enhance your Comments
    2. Add a Contact form
    3. Add Polls or Surveys
    4. Add Forums, Wikis, or Chats
    5. Add a Social Network plugin

Plugins that may be helpful

5-commwstds

  1. Akismet (the #1 spam comment blocking plugin in the world)
  2. Disqus (enhanced Comments)
  3. Contact Form 7 (one of the most popular contact form plugins in the world)
  4. PollDaddy (available on WordPress.com already)
  5. Polls by OpinionStage
  6. WP Survey and Quiz Tool
  7. Survey by POWr
  8. Wiki by WPMU Dev
  9. Chat by WPMU Dev
  10. Pure Chat – Free Live Chat Plugin
  11. iFlyChat – WordPress Chat (allow users to discuss in public and private chat rooms)
  12. bbPress (Official WordPress forum plugin)
  13. BuddyPress (Official WordPress Social Network building plugin)
  14. BuddyPress Docs (add collaborative work spaces to BuddyPress)
  15. BadgeOS Community Add-on (add badges to bbPress and BuddyPress)
  16. BadgeOS Invite Codes Add-on (allow users on BuddyPress to join specified groups with an Invite code)

Step 6: Ongoing Resources

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:

  1. Be sure to NAME your resources appropriately so that they are easy to Search for in the Search box
  2. 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.

Step-by-Step

  1. Appropriately name/label every file you upload
  2. Create a Page called “Class Resources”
    1. You might also create Sub-Pages for each Class like “Freshman 1A Resources”
    2. OR if there will be much overlap, simply divide your Main Page with different Headings for each class
  3. Update your “Class Resources” Page as you find/upload new material
  4. Create a Custom Menu called “Blogroll” or “External Resources” or something
    1. Add links to external sites in this Menu
    2. Add the Menu to a Sidebar Widget (or possibly a Page – you might need a plugin)
  5. Add a Plugin to help you manage everything

Plugins that may be helpful

6-resources

  1. Enhanced Media Library (allows you to Tag your Media Library files and categorize them)
  2. Media Library Assistant
  3. Eazy Enable Blogroll (brings back the original WordPress default Blogroll)
  4. Open Link (outputs Blogroll links to a Page or Post using a shortcode)
  5. Encyclopedia / Glossary / Wiki
  6. Wiki by WPMU Dev
  7. Xili-Dictionary (Multilingual dictionary)
  8. Google Drive WP Media
  9. Google Drive Embedder
  10. BackWPup Free – WordPress Backup Plugin (backups are important)

Full Fledged Learning Management Systems

lms-options

  1. LePress (lacking documentation and screenshots)
  2. Educator
  3. Namaste! LMS
  4. CoursePress | PRO Version
  5. LearnDash (Premium)
  6. WooSensei (Premium)
  7. WP Courseware (Premium)
  8. LifterLMS (Premium)

Your Turn

  • Have you ever built a WordPress LMS site? How was your experience? Any more recommendations?
  • For first users, was my walkthrough helpful? Anything unclear?

Leave me a Comment below.

The First FIVE Components of WordPress to Understand When You’re Just Starting Out

The following article is an excerpt from a presentation I gave on WordPress as LMS that I felt deserved its own Post. Enjoy!~

In WordPress, you only need to understand (a minimum of) 5 KEY CONCEPTS to be able to effectively use the software. They are:

  1. Pages
  2. Posts
  3. Categories
  4. Tags
  5. Media

1. Pages

pages

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 (red box).

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:

  1. Home page
  2. Landing page
  3. Contact page
  4. Clients page
  5. About page
  6. Full-Width page
  7. And so on

2. Posts

posts

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:

  1. Regular (Standard) Posts
  2. Aside Posts (without a title visible on the Blog archive Page)
  3. Image Posts
  4. Video Posts
  5. Quotation Posts
  6. Link Posts
  7. Gallery Posts
  8. Status Update Posts
  9. Audio Posts
  10. Chat Posts

3. Categories

categories

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 at school (or topics) 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.

4. Tags

tags

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 a lesson subject – such as a grammar point we’re studying or the key concepts to understand.

5. Media

WordPress Media is unique in TWO primary ways:

  1. You can Drag-&-Drop media from your Desktop directly into the Post editor window to upload files.
    media-dragdrop
  2. 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!
    media-embeds

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.

This list of FIVE basic components of WordPress does not even begin to scratch the surface of what is possible, but it should give you a clearer understanding of how WordPress works and what kinds of things you can publish with it.

In upcoming Posts, I’ll delve deeper into both the “PRETTY” and the “POWER” of WordPress with topics on:

  1. Theme Choice
  2. Theme Customizer (pretty)
  3. Top WordPress plugins (power)

Any questions about any of these? Let me know in the Comments below.

WordPress as LMS (Learning Management System)

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.

*Audience Note

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:

  1. WHY? (2 parts)
    1. Why an LMS?
    2. Why WordPress?
  2. HOW? (2 parts)
    1. How does an LMS work and how can we use it?
    2. How can we use WordPress to create an LMS?
  3. WHAT?
    1. What are the specific steps we can take to create an LMS in WordPress?

Step 1A: Why an LMS?

Recall again that an LMS is “a digital learning environment to manage all aspects of the learning process.” The following is a list of 6 basic aspects in the learning process:

6-aspects

  1. Communicate objects (syllabus, course objectives, handouts, etc)
  2. Learning timelines (class schedule)
  3. Delivery of materials (drip content)
  4. Assessment & Tracking of student data
  5. Communication with students
  6. Ongoing Resources

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:

  1. Basic: Understand web authoring terminology, how to use templates, and district policies on copyright, ethics, privacy, and security
  2. Intermediate: Identify, prepare, create, and upload materials to a web publishing platform
  3. 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.

“EdTech – Revolution in Education” from the Alliance for Science & Technology Research in America

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?

define: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?

  1. Moodle
  2. Edmodo
  3. Blackboard
  4. Desire2Learn (D2L)
  5. Canvas
  6. Schoology

I think there are at least 6 primary considerations to keep in mind when choosing a suitable LMS. Each of the above is excellent in some of these aspects, but only WordPress rocks all of them:

  1. Price
  2. Power
  3. Flexibility
  4. Simplicity
  5. Support
  6. Reliability

1: Price

WordPress is “forever FREE” due to the GNU GPL2 license.

2: Power

There are over:

  1. 3,000 FREE Themes
  2. 4,000 Premium Themes
  3. 35,000 FREE Plugins

available for WordPress. How much more power do you need?

3: Flexibility

Thanks to WordPress Multisite (a nifty optional feature in the WordPress core), the software is infinitely scalable. A couple of good examples of this are:

  1. WordPress.com that serves up over 500 million sites using only ONE code base
  2. Best Buy which uses ONE base installation to power their 1000s of store sites
  3. The New York Times, Forbes, and Reuters blogs which are all Multisite installations

4: Simplicity

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 from Joomla 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.

5: Support

WordPress already powers 1 in 5 sites you visit on the web, and it’s still growing.

  1. 2014 was the first year that non-English downloads surpassed English downloads
  2. There are 17 posts published EVERY SECOND on WordPress.com
  3. Many of the major corporate, political, and tech brands use WordPress
  4. The WordPress Community is enormous, friendly, and helpful. There are:
    1. WordPress Support forums
    2. WordPress Meetups to provide training and assistance (like our Jeonju Meetup)
    3. WordCamps for networking and education
    4. WordPress.tv that contains filmed WordCamp presentations

6. Reliability

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:

  1. Dreamhost (*affiliate) – get 2 months FREE hosting with the code: WPMUJJ
  2. Bluehost
  3. Host Gator
  4. GoDaddy
  5. WPEngine

Step 2A: How does an LMS work and how can we use it?

define:Blended Learning/
Education that integrates online and in-person delivery with some element of student control over the time and place in which they access the course content.

Face-to-face interaction + Computer-mediated activities

Consider the following types of classrooms:

  1. Traditional
  2. Flipped (Blended) classrooom
  3. MOOC

What’s an MOOC?

define:MOOC/
Massive Online Open Courses: an online course aimed at unlimited participation and open access via the web.

Examples of MOOCs include:

  1. edX
  2. Khan Academy
  3. Udacity
  4. Udemy
  5. Coursera

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:

  1. Level of Instruction: prepare a SINGLE course (at least a first)
  2. Time (Schedule): allow a modified time schedule for students to access the site
  3. Role of Online Components: enhanced
  4. Teacher role: Teacher supports
  5. Student role: Teacher-guided learning
  6. Student support: School mentoring
  7. 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:

  1. Go paperless
  2. 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:

  1. WordPress.com
  2. WordPress.org
WORDPRESS.COM
  1. Is a hosting SERVICE where you can get a FREE site and username at their domain (http://yourname.wordpress.com)
  2. Is limited in freedoms, but provides paid upgrades and is still a viable option for class websites
WORDPRESS.ORG
  1. Hosts the (downloadable) SOFTWARE and all documentation, but you are required to find your own self-hosting solution (http://www.yourname.com)
  2. 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:

  1. Dreamhost (*affiliate) – get 2 months FREE hosting with the code: WPMUJJ
  2. Bluehost
  3. Host Gator
  4. GoDaddy
  5. WPEngine

Step 3: What are the specific steps we can take to create an LMS in WordPress?

Consider the 6 aspects of the learning process again:

  1. Communicate objects (syllabus, course objectives, handouts, etc)
  2. Learning timelines (class schedule)
  3. Delivery of materials (drip content)
  4. Assessment & Tracking of student data
  5. Communication with students
  6. Ongoing Resources

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:

5-key-concepts

  1. Pages
  2. Posts
  3. Categories
  4. Tags
  5. Media

1. Pages

pages

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:

  1. Home page
  2. Landing page
  3. Contact page
  4. Clients page
  5. About page
  6. Full-Width page
  7. And so on

2. Posts

posts

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:

  1. Regular (Standard) Posts
  2. Aside Posts (without a title visible on the Blog archive Page)
  3. Image Posts
  4. Video Posts
  5. Quotation Posts
  6. Link Posts
  7. Gallery Posts
  8. Status Update Posts
  9. Audio Posts
  10. Chat Posts

3. Categories

categories

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.

4. Tags

tags

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.

5. Media

WordPress Media is unique in TWO primary ways:

  1. You can Drag-&-Drop media from your Desktop directly into the Post editor window to upload files.
    media-dragdrop
  2. 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!
    media-embeds

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

0-plugins

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:

1. Communicate Objects

1-commobjs

  1. WPMU CoursePress
  2. WP Teacher
  3. Educator
  4. Easy Classes

2. Learning Timelines

2-timelines

  1. The Events Calendar
  2. Weekly Class Schedule
  3. My Calendar
  4. Booking Calendar

3. Delivery (Drip Content)

3-delivery

  1. WP-Members
  2. Simple Course Creator
  3. Table of Contents Plus
  4. Show/Hide Content at Set Time

4. Assess & Track

4-assessntrack

  1. AN_Gradebook
  2. Quiz Tool Lite
  3. Easy Quiz Player
  4. BadgeOS LearnDash Add-on

5. Communicate with Students

5-commwstds

  1. Disqus Comment System
  2. Akismet Spam Comment Blocker
  3. bbPress Forums
  4. BuddyPress Social Network

6. Ongoing Resources

6-resources

  1. Enhanced Media Library
  2. BackWPup
  3. Google Drive WP Media
  4. Google Drive Embedder

Full-fledged LMS systems for WordPress

  1. LearnDash
  2. Woo Sensei
  3. WP Courseware
  4. Lifter LMS
  5. Namaste! LMS (Free)

So, how will YOU use WordPress in your classroom? (or business)?

A Comprehensive Overview of WordPress Site Owner Roles

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):

  1. TECHIE: performs the initial installation of the website
    1. Tasks
      1. Domain name registration
      2. Website hosting
      3. File transfers (FTP Clients)
  2. ADMIN: sets up and maintains the website backend
    1. Tasks
      1. Username + Password
      2. Site Setup
      3. Site Management
    2. Supplementary Topics (later)
      1. Site Security
      2. Site Backups
      3. Plugins
      4. Managing Users
      5. Advanced Admin Tasks
  3. DESIGNER: deals with the website frontend
    1. Tasks
      1. WordPress Customizer
      2. WordPress Menus
      3. WordPress Widgets
    2. Supplementary Topics (later)
      1. Theme Choice
      2. Custom CSS
      3. Custom HTML in Posts
      4. Basic Graphic Design
        1. Color Theory
        2. Typography
        3. Layout
      5. Site Branding
  4. CONTENT CREATOR: pushes NEW content to the website on a regular basis
    1. Understand:
      1. WordPress media
      2. The difference between Posts and Pages
      3. The difference between Tags and Categories
    2. Supplementary Topics (later)
      1. SEO
      2. Social Sharing
      3. Using Blog Templates
      4. Content Delivery
        1. Successful Content Types
        2. Making an Editorial Calendar
        3. Delivery methods: Email, SNS, RSS, CDNs
  5. DEVELOPER: modifies, maintains, or adds code
    1. Advanced Topics (later)
      1. HTML + CSS
      2. JavaScript + jQuery
      3. PHP + MySQL
      4. WordPress Codex
        1. Plugin Development
        2. Theme Development
        3. Contributing to the WordPress Core
      5. WordPress Development Best Practices

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.)



wpmu2-techie

1. Techie

Performs the initial installation of the website.

The 3 major tasks a “techie” must deal with are:

  1. Domain name registration
  2. Website hosting
  3. File transfers (FTP Clients)

When running WordPress, you have TWO options for how to host your site:

  1. WordPress.com = hosted on the WordPress.com service & most of the hosting issues are taken care of for you through the service
  2. WordPress.org = a software download that you install yourself (or through a third-party hosting company) on a domain of your choice (and purchase)

WordPress.com

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.

WordPress.org

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:

  1. Purchase a domain name (URL), purchase hosting, and perform “the Famous 5-Minute Install” yourself
  2. Find a host that does all of this for you will a One-Click Install

(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:

  1. Dreamhost.com – affiliate (I’ve been a happy customer since 2009 – service keeps improving – hosting around $10/month)
  2. Bluehost.com (My second choice – hosting for as low as $3.95/month)
  3. 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)
  4. GoDaddy.com (Most famous for Domain name registrations as far as I know though they do provide hosting as well)
  5. WPEngine.com (A proprietary WordPress hosting provider – you’ll pay a premium but also get premium service)

Domain Name Registration services I’ve used

  1. Dreamhost.com –*affiliate (I just like having domain name registry and hosting all together)
  2. 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)
  3. Namecheap.com (This site provides the greatest number of secondary TLD recommendations if your primary choice is not available)

TLD = Top-Level Domains

The original Top-Level Domains (introduced in the 1980s) were .com, .org, .net, .edu, .gov, .mil, and .int. Countries also have their own TLDs including .uk, .au, .kr, among others. And in the 2000s, particularly from 2012 and onward, 1000s more TLDs have been created so that when I go to register a new domain in Dreamhost (*affiliate), I can find a page that looks something like this:

Affiliate link: http://www.dreamhost.com/r.cgi?508174
Affiliate link: http://www.dreamhost.com/r.cgi?508174

Each TLD has its own unique price, though the majority are between $10-50 for a one-year registration. (But check out the price of .rich in the above image!)

Best Advice for Choosing a Domain Name

Keep it Simple, Silly.

5 Top Domain Naming Tips

  1. Simple, sweet, and easy to remember is best
  2. Your domain name should tell or stand for what you do and be recognizable
  3. Hyphens, dashes, and underscores are allowable but add complexity
  4. Extra long names are hard to remember
  5. If you want exclusivity (and so no one can piggy-back off your name with a different TLD), buy ALL the major TLDs with your name, i.e. nike.com, nike.net, nike.org, nike.info, etc.

Bad example:

http://www.thelongestdomainnameintheworldandthensomeandthensomemoreandmore.com/

Great example:

http://ma.tt/

Finally, dealing with Files

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:

  1. FileZilla (my #1 recommendation because it is cross-platform and well-designed)
  2. FireFTP (an add-on for Mozilla’s Firefox browser)
  3. CyberDuck (an FTP client I’ve used extensively on MacOSX – now also available for Windows)


wpmu2-admin

2. Admin

Sets and manages up the backend of the website.

The 3 major tasks an “admin” must deal with are:

  1. Username + Password
  2. Site setup
  3. Site management

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):

  1. 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.)
  2. 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:

  1. Use a combination of UPPERCASE, lowercase, numb345, &$ymb@!$
  2. Create a pattern that’s easily recognizable or memorable for you (like this guy did)
  3. Use a site-specific “pass phrase rather than password (like “aaron@mydigitalH0M3”)
  4. Longer is always better – shoot for 10+ characters
  5. Avoid dictionary / common words / expressions / strings of numbers

Bad Examples (the most popular passwords of 2014):

123456, password, qwerty, baseball, dragon, football, monkey, letmein, abc123, 111111, mustang, access, shadow, master, michael, superman, 696969, 123123, batman, trustno1

Great Examples (how a password changed this guy’s life):

Quit@smoking4ever
Save4trip@thailand

First Steps

Once the username and password are setup and you’ve logged in to your WordPress site, here is a list of the TOP FIVE first things that I personally see to:

  1. Install Jetpack (this plugin will significantly upgrade your website by adding 34 powerful functions utilizing the WordPress.com cloud – WordPress.com username necessary – you can sign up for just the username here)
  2. Install Akismet (the #1 comment spam blocker plugin in the world – FREE for personal use or $5/month for a business)
  3. Make Pretty Permalinks (don’t allow your site to use “ugly” default URLs)
    1. Default: http://www.yoursite.com/?p=123
    2. Pretty: http://www.yoursite.com/your-post-name/
    3. *Note* It seems Pretty Permalinks are set to be the default in WordPress 4.2
  4. DESIGNER: Pretty up the Homepage (see below)
  5. CONTENT CREATOR: Write your first Post(s) (see below)

Detours (Later Topics)

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:

  1. Website Security
  2. Website Backups
  3. Plugins
  4. Site Management
    1. User Management
    2. Discussion Management
    3. Media Management
  5. Advanced Topics
    1. Updates & Site Tools


wpmu2-designer

3. Designer

Takes care of the frontend of the website.

3 primary tasks a “designer” should address are:

  1. The WordPress Theme Customizer (front page style editing)
  2. Menu Creation
  3. Widget Assignment

First Steps (in the “Appearance” Menu)

  1.  Customize – In the WordPress Customizer you can modify a variety of frontend design elements including:
    1. Site Title
    2. Tagline
    3. Colors
    4. Header Image
    5. Background Image
    6. Menus (Navigation)
    7. Widgets
    8. Static Front Page (this means you set your front page to a specific Page and your blog archive to a different Page)
  2. 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
  3. 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:

  1. Theme Choice
  2. Custom CSS
  3. Custom HTML in Posts
  4. Basic Graphic Design
    1. Color Theory
    2. Typography
    3. Layout
  5. Branding


wpmu2-content

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:

  1. WordPress Media
  2. The Difference between Posts and Pages
  3. 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:

  1. Plan (5-30 min)
  2. Research (30 min-1 hr)
  3. Write (1-2 hrs)
  4. Edit (10-30 min)
  5. 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.

But if you’re interested in some more tips for How to Write a Blog Post in 70 Minutes or Less, check out Michael Hyatt’s podcast and post on the subject.

Understand:

WordPress Media

  1. 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:
    1. YouTube
    2. Vimeo
    3. SlideShare
    4. Twitter
  2. 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.
  3. 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

  1. Posts : non-hierarchical articles that are referenced chronologically and can be categorized by Tags and Categories
  2. 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

  1. Tags : non-hierarchical keywords used for Searching (like “green”, “big”, “important”, etc)
  2. 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:

  1. SEO (Search Engine Optimization)
  2. Social Sharing
  3. Using Blog Templates to speed up Content Creation
  4. Content Delivery Methods
    1. Content Types
    2. Creating an Editorial Calendar
    3. Email, SNS (Social Networking Services), RSS (Really Simple Syndication), CDNs (Content Delivery Networks)
  5. Serving Your Audience


wpmu2-developer

5. Developer

Maintains, modifies, or adds code.

The 3 main things a “developer” is likely to deal with are:

  1. Custom CSS code
  2. Custom HTML code within Posts & Pages
  3. Child Themes

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)

  1. Learn:
    1. HTML
    2. CSS
    3. JavaScript
    4. jQuery
    5. PHP
    6. MySQL
  2. Understand:
    1. WordPress Codex
    2. Plugin Development principles
    3. Theme Development principles
    4. How to make contributions to the WordPress core
    5. 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!~

Open Source, WordPress, and the Community

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:

  1. What is WordPress?
  2. How big is WordPress?
  3. Why should you care?
  4. What can you do with it?

What is it?

WordPress is an open-source Content Management System licensed under the GNU General Public License (GPL) version 2.

Open Source

What is open-source software?

  • “Open” means “visible, free, or available”
  • “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.

Examples:

  1. Microsoft: closed vs. Linux: open
  2. iOS: closed vs. Android: open
  3. Wix: closed vs. WordPress: open
Advantages of Open vs. Closed-source Software

Open-Source:

  1. More developer support (anyone, anywhere can work use it)
  2. More customizable
  3. More secure (thousands of people can view and fix the code)
  4. Extended Community Support

Closed-source:

  1. Less choices and customer confusion (there’s only ONE version of the software)
  2. More unified experience (Apple always looks like Apple)
  3. 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:

  1. Use commercially
  2. Modify or build upon
  3. Distribute
  4. Place under warranty

So long as you:

  1. Track dates/changes in the source files
  2. Keep all modifications under the same GPLv2 license
  3. Disclose the source code

(See the simplified GPLv2 summary)

A brief history of WordPress

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.

The Difference Between WordPress.com and WordPress.org

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.

In summary:

WordPress.com
  1. Is a hosting SERVICE
  2. Is like a house you rent
  3. Is limited in freedoms, but provides paid upgrades
WordPress.org
  1. Hosts the (downloadable) SOFTWARE and all documentation
  2. Gives you access to a house you can “own”
  3. 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.

http://w3techs.com/technologies/history_overview/content_management/all/y/
http://w3techs.com/technologies/history_overview/content_management/all/y/

WordPress powers plenty of famous and popular websites like:

  1. The New York Times blogs
  2. CNN blogs
  3. Forbes blogs
  4. Reuters blogs
  5. Jay-Z
  6. Katy Perry
  7. TechCrunch
  8. The GOP (US Republicans)
  9. Mashable

For a more robust list, see WordPress.com’s Notable Users page. And for a FULL list, see WordPress.org’s Showcase.

And in Korea, I’ve found WordPress powers:

  1. Seoul City’s homepage
  2. Bloter.net
  3. Samsung Electronics
  4. LG Electronics
  5. Yonhap News TV
  6. Insight of GS Caltex
  7. KB Rockstar
  8. Hyundai Corporation
  9. WebActually

There are some nice collections of sites at isquery.com and hwangc.com, or you can see a random selection of 4 WordPress sites in the Showcase on ko.wordpress.org.

Why should you care?

#1: It’s Free

Because of its open-source nature and the GPL2 license, you never have to pay any kind of licensing fees to use or modify the software.

#2: It’s Powerful

There are:

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.

http://automattic.com/about/
http://automattic.com/about/

#5: It’s Comparatively Easy

I’ve worked with, customized, and programmed:

  1. Static HTML sites
  2. Moodle
  3. Joomla!

And I can say from experience that WordPress has the LEAST complicated administrator backend.

Years ago, Joomla! may have been more powerful than WordPress, but with the 5 major releases of WordPress in 2014 and continual development from a fine community of programmers, it is no longer.

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.

Generally, a full WordPress site can be:

  1. Setup in 5 minutes
  2. Built in 4-5 weeks

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).

KeyToKorean.com site stats
KeyToKorean.com site stats

Main idea:

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 Index of 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:

  1. South Korea: 15
  2. Japan: 26
  3. Russia: 25
  4. China: 20
  5. Mongolia: 34
  6. Philippines: 57
  7. Malaysia: 40
  8. Indonesia: 76
  9. 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:

  1. WordPress.com Forums (WordPress.com hosted sites)
  2. WordPress.org Forums (self-hosted sites)

In fact, a “recommended read” for their Happiness Engineers is Delivering Happiness by Tony Hsieh, CEO of Zappos.com.

Deliveringhappiness

What can you do with it?

#1: Build Websites

In my own experience, I’ve built:

  1. Classroom sites
  2. Academy sites
  3. School & organizational sites
  4. Educational sites
  5. Church websites + podcasting
  6. Portfolio websites
  7. And personal blog sites (like this one)
#2: Contribute to the Community

There are numerous ways to get involved with the WordPress Community – and you’re already participating in one by attending this WordCamp. The others are suggestions from make.wordpress.org:

  1. Contribute to Core development
  2. Build plugins
  3. Design themes
  4. Create Web apps
  5. Help out in the Support Forums
  6. Help write documentation or training materials – even tutorials on your blogs
  7. Help translate the core, themes, or plugins
  8. Join (or form) a WordPress Meetup

Again:

Whatever your mind can conceive and believe, you can achieve. – Napoleon Hill

So the real question isn’t “What can you do with it?” but rather:

What will you do with it?


Liked my PPT and talk (article)? Leave me a comment below.

Or for our Meetup members, feel free to ask any questions you might have about WordPress or give me suggestions for the next Meetup subject and talk!~

오픈 소스, 워드프레스, 그리고 커뮤니티

워드프레스는 현재 인터넷 상위 사이트의 25 % 이상을 지원합니다. 무엇이며, 무엇 때문에 그렇게 유명하고 강력합니까? 이 강연은 워드프레스인 “출판의 민주화”에 대해 소개합니다.

Read in English

비디오

안녕하세요. 제 이름은 에런 스노버거예요. 저는 워드프레스 테마와 프러그인 취미 개발자, 프리렌스 그래픽 디자이너, 그리고 전주대학교 영어 교수입니다. 저는 전주에서 워드프레스 미트업과 워크숍을 주최하고있으며 여기 서울 미트업으로 오늘 저는 워드프레스에 대한 일반적 개요를 말씀드리려고 이곳에 초대 받았습니다. 그래서, 이 프리젠테이션은 첫번째 전주 미트업 프리젠테이션을 조금 수정한 것입니다.

보통 영어로 발표를 하지만 이 번에는 제 친구로부터 한국말로 발표를 해 보라는 도전을 받아서, 그렇게 할겁니다. 한국말은 제 두번째 언어니까, 조금 인내와 자비를 베풀어 주시기 바랍니다. 그리고, 완벽하지는 않지만 지루하시지는 않을 거예요. 적어도 제 PPT 정말 멋지죠?

제 발표에서는 ‘오픈 소스, 워드프레스, 그리고 커뮤니티’라는 주제를 확장할 네가지 주요 포인트를 알려드리겠습니다:

  1. 워드프레스는 무엇 인가?
  2. 워드프레스는 얼마나 큰가?
  3. 왜 워드프레스에 관심을 가져야 한가?
  4. 워드프레스로 무엇을 하는가?

워드프레스는 무엇 인가?

워드프레스는 오픈 소스 콘텐츠 관리 시스템 입니다. 그것은 GPL2에 의해 인가됩니다.

오픈 소스

오픈 소스가 무엇 입니까?

  • ‘오픈’은 ‘볼 수 있게, 자유롭게, 가능하게 소프트웨어’ 뜻입니다.
  • ‘소스’는 프로그램을 만드는 컴퓨터 코드입니다.

그래서 ‘오픈 소스’는 모두에게 자유로운 공짜 컴퓨터 코드입니다. 누구나 사용할 수 있고, 바꿀 수 있고, 다른 사람과 나눌 수 있습니다. 이것은 분산 소프트웨어 모델과 광범위한 코드문서를 대중에게 공짜로 주고 커뮤니티 한테서 기부를 북돋웁니다. 이렇게 새로운 기능과 버그 수정을 더 빨리 합니다.

‘크로즈 소스’와는 대조적으로 코드와 기술은 회사에서 개발하고 판매합니다. 어떤 경우는 복제하거나, 수정, 재조립, 배부 소스 코드를 연구 하는 것 조차도 ‘범죄’가 될 수 있습니다.

예 보자:

  1. 마이크로소프트: 크로즈 / 리누크스: 오픈
  2. iOS: 크로즈 / 안드로이드: 오픈
  3. 위크스: 크로즈 / 워드프레스: 오픈

오픈 소스와 크로즈 소스의 장점

오픈 소스:

  1. 더 많은 개발자들의 도움 (누구나, 어디서나 할 수있습니다)
  2. 더 많은 사용자 정의 (더 많은 변형가능성)
  3. 더 안전함 (누구나 수정을 할 수있습니다)
  4. 더 큰 커뮤니티의 도움

크로즈 소스:

  1. 선택의 폭이 좁고 사용자의 혼동 1 적음 (소프트웨어 버전은 한개 밖에 없습니다)
  2. 사용자 경험의 통합 (에플에서 나온 것은 다 에플 같죠)
  3. 더 높은 상품가능성 (개발자들에게 사용료를 받고 경쟁자들을 배제 할 수있다)

콘텐츠 관리 시스템 (CMS)

CMS란 무엇입니까?

몇년전에 대부분 웹사이트들은 페이지 별로 만들어졌고 코드를 손으로 만들었고 정적인 콘텐츠들이 많았습니다. (제가 이런 웹사이트들을 만들어 본 적이 있어요.) 요즘은 웹사이트들이 매일 업데이트 되고 동적인 콘텐츠들이 가득합니다.

크고 변화 무쌍한 웹사이트 관리를 더 쉽게하기 위해서, 1990년초에 콘텐츠 관리 시스템들이 만들어졌습니다.페이지별로 손드로 코딩하는 필요를 없애기위해, 그리고 마이크로소프트 워드 처럼 생긴 웹 공개 인터페이스를 만들기 위해 인터넷이 연결되어있고 기본적인 워드프로세스 기술만 있으면 그들이 웹사이트에 다 아나믹한 컨텐드를 빠르게 만들어서 공개 할 수있습니다.

또한 헤더, 푸터, 사이드바, 그리고 다양한 컨텐츠 파트들은 따로 분리가 가능하고 이는 웹사이트가 열렸을 때 개별적으로 관리할수 있고 더 역동적으로 로딩됩니다.

각각의 웹페이지를 따로 관리하는 것이 훨씬 좋습니다. 푸더에 있는 로고를 바꾸는 작은 작업을 수행하기위해 따로 코딩된 웹페이지를 따로 열어야 하는 필요가 없으니까요.

GPL2

GPL2가 무엇입니까?

GPL의 뜻은 ‘그누 제너럴 펍릭 리이센스’라고 하고 워드프레스와 소스 코드를 관장하는 법적 라이센스 입니다. GPL2는 ‘카피레프트’ (카피라이트에서 나온 말)입니다. 사용되고 수정되고 배포되는 모든 소프트웨어는 법적으로 배포 되려면 같은 라이센스 계약을 해야 합니다.

이는 곧, 소프트웨어 회사나 다른 개발자들은 위드프레스의 라이센스를 클로즈 소스로 법적으로 바꿀 수 없습니다. 그러므로 워드프레스와 그 카피는 GPL라이센스 때문에 누구에게나 ‘영원히 무료’입니다.

최근 인터뷰에서, 워드프레스의 공동 제작자 매트 뮤렌웨그은 오픈 소스에 대새서 이렇게 설명 했습니다:

살면서 내가 들은 가장 중요한 생각은 소프트웨어의 권리 장전 과 같고 … 그 것은 ‘곧 당신이 오픈소스를 사용할때 변치 않는 권리를 주는 네가지 자유가 있다.’

소프트웨어는 다음 4가지에 있어 자유롭다:

  1. 상업적으로 사용할 수있고
  2. 수정 또는 구축할 수있고
  3. 배포할 수있고
  4. 보증이 되고

하지만 이 것은 지켜야 합니다:

  1. 소스 파일에 날짜 변경 기록
  2. 모든 수정은 똑같은 라이센스에 적용
  3. 소스 코드를 표면화

(See the simplified GPLv2 summary)

워드프레스의 간략한 역사

워드프레스는 2003년 미국의 메트 뮬렌웨그와 영국의 마이크 리틀이 합작한 소프트웨어 프로젝트로 시작되었습니다. 뮬렌웨그가 만든 b2(카페로그)라 불리는 오픈소스 블로깅 플랫폼의 다른 유형이었습니다. (fork)

뮬렌웨그은 이렇게 설명 했습니다:

워드프레스는 다른 오픈소스 프로젝트에 포크 분할로 시작했습니다. 내가 사용하고 블로깅하는 b2라 불리는 것이 있었는데 만든사람이 사라졌어요. 저와 영국에사는 이 분 마이크 리틀은 이 b2를 가져다가 다시 개발하기 시작했습니다.

결국 둘은 런던에서 2005년에 만났고 같은 해 뮬렌웨그는 Automattic회사 (‘Matt’가 보이시죠?)를 만들고 위드프레스.com도 온라인에 등장 하게 되었습니다.

Automattic은 워드프레스.com과 여러 워드프레스의 가장 유명한 Akismet같은 스팸 댓글을 막는 플럭인과, 워드프레스 설치를 업그레이드 시켜주는 Jetpack 플러그인의 추진력이 되고 있습니다.

워드프레스.com워드프레스.org의 다른 점

이 주제는 제가 전주에서 미트업 할 때 꼭 짚고 넘어가야 겠다고 생각했는데 왜냐하면 사람들이 이 둘의 차이를 헷갈려하고 있었기 때문입니다. 워드프레스.com과 워드프레스.org 주요 차이점은 .com은 서비스이고 .org는 소프트웨어를 다운로드해 주는 커뮤니티입니다.

이 둘의 차이를 전세와 매매라고 생각 해 봅시다:

  • 워드프레스.com은 집전세라고 생각하면 돼요. 워드프레스.com에 리모델링 옵션은 제한 되고 만약 웹사이트가 고장 나면 주인한테 연락 하고 고쳐야 합니다.
  • 반면, 워드프레스.org은 집매매라고 생각하면 되요. 당신은 워드프레스 소프트웨어를 다운로드하면 원하는 데로 재단장하고 재 디자인 할 수 있습니다.

그러므로 워드프레스.com은 초보자들이 웹사이트가 어떻게 운용되고 어떻게 잘 사용하는지 배울 수 있는 가장 좋은 곳입니다. 이렇게 익숙해지고 나면 워드프레스.org로 넘어가서 원하는 버전의 소프트웨어를 다운로드 하면 됩니다.

워드프레스.com은:

  1. 웹호스트 서비스
  2. 전세한 집과 같다
  3. 자유가 제한적이지만 돈을 내면 업그레이드를 할 수 있다

워드프레스.org는:

  1. 소프트웨어 다운로드와 코드 문서 장소
  2. 산집과 같아요
  3. 무제한 수정 (customization) 옵션

워드프레스는 얼마나 큰가?

지금은 워드프레스는 세계적으로 6천만 웹사이트에 설치 되어 있는데 이는 세계의 모든 웹사이트의 23%를 차지합니다. 또 Automattic회사는 10조 달라의 가치가 있습니다.

http://w3techs.com/technologies/history_overview/content_management/all/y/
http://w3techs.com/technologies/history_overview/content_management/all/y/

워드프레스는 다음과 같은 인기있고 유명한 웹사이트를 지원하고 있습니다:

  1. 뉴욕 타임스 블로그들
  2. CNN 블로그
  3. 포브스 블로그
  4. 로이터스 블로그
  5. Jay-Z
  6. 케이티 페리
  7. 텍크런치
  8. GOP (미국의 공화당)
  9. 메쉬어블

더 자세한 목록을 보려면, 워드프레스.com의 주목 할만한 사용자 페이지로 가세요. 전체 목록을 보려면, 워드프레스.org의 쇼케이스로 가세요.

한국에서 워드프레스를 사요하는 사이트 입니다:

  1. 서울시 홈페이지
  2. 블로터.net
  3. 삼성전자
  4. LG전자
  5. 연합뉴스TV
  6. GS 칼텍스
  7. KB 록스타
  8. 현대기업
  9. 웹엑츄얼리

isquery.com하고 hwangc.com에 좋은 워드프레스 웹사이트 모음이 있고 ko.wordpress.org에서 쇼케이스에 란덤 워드프레스 사이트 네개까지 있습니다.

왜 워드프레스는 관심을 가져야 하는가?

첫번째: 무료(공짜)니까

오픈소스의 성격상, GPL2라이센스 때문에 소프트웨어를 수정할 때 라이슨스 비용을 지불할 될요가 없습니다.

두번째: 강력하니까

당신의 생각이 지각하고 믿는 한 당신은 이룰 수 있습니다. –나폴레옹 힐

세번째: 확장이 무한대이니까

워드프레스.com세계의 제일 큰 워드프레스 설치 입니다. 단 하나의 코드를 가지고 각자의 독특한 데이타베이스 테이블을 만들어 쓰고 있는 5조 이상의 사용자들이 있습니다. 대단하지요!~

같은 방식으로 워드프레스는 당신의 웹사이트의 필요한 것을 채우기 위해 확장할 수 있습니다. 당신이 단순히 일기를 쓰는 블로그이거나 (1,000이상) 각각의 스토어 사이트가 필요한 포춘500 기업이든 상관없습니다.

네번째: 성장하고 있으니까

2014년에 12나라에서 81개 워드캠프를 했습니다. 또, 2014년은 워드프레스의 비영어 다운로드수가 영어 다운로드수를 능가한 첫 해였습니다. 이것은 워드프레스가 미국 뿐만 아니라 국제적으로 성장 하고 있다는 것을 보여주고 있습니다.

또, 워드프레스.com은 회사 규모가 훨씬 작지만 월별 방문자 수가 페이스북과 비슷합니다.

http://automattic.com/about/
http://automattic.com/about/

다섯번째: 쉬우니까

저는 HTML, 무들, 그리고 줌라 사이트를 프로그램잉 해 본 적이 있습니다. 제 경험상 워드프레스가 관리자 백앤드가 제일 쉽습니다. 몇년전 만해도 줌라는 워드프레스 보다 더 강했지만 2014년 워드프레스 5개 주요 발표와 아주 훌륭한 프로그래머 커뮤니티의 계속적인 발전으로 지금은 상황이 반전되었습니다.

사실, 제 경험에 2011년에 (theJeonjuHub.com)사이트를 HTML에서 줌라로 바꾼후에 2년안에 워드프레스로 결국 바꿨습니다. 왜냐하면, 줌라의 메뉴와 관리자 백앤드는 더 복잡 했기때문입니다.

보통은 워드프레스 사이트는:

  1. 5분 안에 설치할 수있고
  2. 4-5주 안에 만들 수있습니다

만약 MS워드할 수 있으면, 워드프레스 도 할 수 있습니다. 인터페이스는 비슷합니다.

여섯번째: 플랫폼을 만드는데 최고이니까

무엇인가 팔고 싶다면 플랫폼이 필요합니다. 워드프레스는 단순히 한달에 30명이 보는 블로그에서부터 한 달에 3만명이 보는 블로그까지 플렛폼을 쉽게 만드는 놀라운 도구입니다. (이것은 제 경험에 비취본 것입니다.)

KeyToKorean.com site stats
KeyToKorean.com site stats

일곱변째: 한국은 성장하는 시장이니까

최근에 본 구글서치 드렌드에 나온 그래프에 따르면, 검색이 남한은 워드프레스와 워드프레스 관련 주제에 대한 검색순위15 이었습니다. 주변국들과 비교해 보았을 때 한국의 성장 가능성이 많음을 알수 있습니다.

  1. 한국: 15
  2. 일본: 26
  3. 러시어: 25
  4. 중국: 20
  5. 몽골: 34
  6. 필리린: 57
  7. 말라시아: 40
  8. 인도네시아: 76
  9. 미국: 46

게다가, 현지 워드프레스 커뮤니티에 의한 한국 워드프레스는 엄청난 지원을 받고 있습니다.

여덟번째: 워드프레스 커뮤니티

워드프레스 커퓨니티는 상당히 크고 큰 도움을 주며 유용하고 친절합니다. 워드프레스 미업은 전세계에서 열리며 다른 사람들이 워드프레스 웹사이트를 만드는 것을 가르쳐주고 도와주고 있습니다.

저는 전주에서 워드프레스 미트업을 시잣했는데 이는 다른 워드프레스 사용자들이 웹사이트를 만드는 것을 돕기 위해 정기적으로 서로 만나는 자니를 마련하고 싶었기 때문입니다.

전주대에서 외국인 교수들한테 여러 워드프레스 워크숍을 열었고 개인적으로 1대1 워드프레스 웹사이트 조언과 훈련을 했습니다. 그래서 제 생각에 이베 정기적으로 워드프레스 도움을 위한 자리를 마련해야 갰다고 생각했습니다. 전주 워드프레스 미트업을 2015년 1월부터 시작 했습니다.

그러므로 지금은 ‘해피니스 엔진이어‘라고 생각하고 있습니다. 워드프레스의 ‘해피니스 엔진이어’는 워드프레스 포럼에서 도움과 행복준 종업원이지만 진짜 종업원은 되면 필요 없습니다. 필요한 유일한 것은 다른 워드프레스 사용자에게 도움과 행복을 주려고 싶습니다. 마냑 ‘해피니스 엔진이어’의 생각을 알고 싶으면, 재포스.com의 CEO 토니 셰이의 책 ‘딜리버링 해피니스‘을 읽어 보세요. 이 책은 모든 ‘해피니스 엔진이어’에 추천 도서입니다.

L

워드프레스로 무엇을 할 수 있습니까?

첫째: 웹사이트를 만들 수 있습니다

제 개인적으로는 다음과 같은 것을 만들었습니다:

  1. 교실에서 사용하는 사이트
  2. 학업용 사이트
  3. 학교와 기업 사이트
  4. 교육용 사이트
  5. 교회 웹사이트와 팟케스팅
  6. 포트폴리오 웹사이트
  7. 개인적 블로그 사이트 (이것과 같은)

두번째: 커뮤니티에 기여할 수 있습니다

워드프레스 커뮤니티에 참여하는 방법은 많습니다. 여기 워드프레스 미트업을 와서 벌써 참여하고 있습니다. 다른 참여 방법은 make.wordpress.org에 있습니다:

  1. 코어 (메인 소스코드) 개발하기
  2. 플러그인 만들기
  3. 테마 디자인하기
  4. 웹앱 만들기
  5. 도움 포럼에서 돕기
  6. 문서나 훈련서, 투토리얼를 쓰기
  7. 코어와 테마와 플러그인을 번역하기
  8. 워드프레스 미트업을 가입하거나 만드기

다시:

당신의 생각이 지각하고 믿는 한 당신은 이룰 수 있습니다. –나폴레옹 힐

그래서 가장 중요한 질문은 ‘무엇을 할 수 있습니까?’가 아니라:

‘무엇을 하겠습니까?’입니다.

How to Enable Social Icons in the WordPress Theme Customizer

I figure I might as well write about this before I deprecate it in my upcoming Theme. Social Nav Menus are much better.

A week or two ago as I was getting deep into developing a new WordPress Theme, I stumbled upon some pretty good looking code that would allow me to add Social Media Icons to the Theme Customizer like so:

theme_customizer_social_icons

At the time, it was a superb idea. I was just learning about all the possibilities the Theme Customizer affords developers and it was fun to implement the code and watch it work so smoothly.

However, after watching Morten Rand-Hendriksen’s Building Themes from Scratch Using Underscores and reading Justin Tadlock’s post on building Social Nav menus, I think I will scratch this bit of code in favor of Tadlock’s solution.

It just makes sense to not want to have to re-enter your Social Media links in every new Theme you install. Why not just leave all the Social links you want in a nav menu and use your Theme to style and output it specifically as a Social menu?

TwentyFifteen also does just that. (See #3 in this post.)

Nevertheless, I felt that the code itself was worth my time to invest in learning, so I’m reproducing it here for reference. This code is modified slightly from the example I found – I’ve included email as an option. It should be pretty easy to see how it’s done:

add_section(), add_setting(), add_control()

 /**
 * Social site icons for Quick Menu bar
 * 
 * @link: https://www.competethemes.com/social-icons-wordpress-menu-theme-customizer/
 */
 $wp_customize->add_section( 'social_settings', array(
     'title' => __( 'Social Media Icons', 'theme_slug' ),
     'priority' => 100,
 ));
 
 $social_sites = theme_slug_get_social_sites();
 $priority = 5;
 
 foreach( $social_sites as $social_site ) {
 
     $wp_customize->add_setting( "$social_site", array(
         'type' => 'theme_mod',
         'capability' => 'edit_theme_options',
         'sanitize_callback' => 'esc_url_raw',
     ));
 
     $wp_customize->add_control( $social_site, array(
         'label' => ucwords( __( "$social_site URL:", 'social_icon' ) ),
         'section' => 'social_settings',
         'type' => 'text',
         'priority' => $priority,
     ));
 
     $priority += 5;
 }

function theme_slug_get_social_sites()

/**
 * Social Media icon helper functions
 * 
 * @return array
 * 
 * @link: https://www.competethemes.com/social-icons-wordpress-menu-theme-customizer/
 */
function theme_slug_get_social_sites() {
 
     // Store social site names in array
     $social_sites = array(
         'twitter', 
         'facebook', 
         'google-plus',
         'flickr',
         'pinterest', 
         'youtube',
         'vimeo',
         'tumblr',
         'dribbble',
         'rss',
         'linkedin',
         'instagram',
         'email'
     );
 return $social_sites;
}

function theme_slug_show_social_icons()

// Get user input from the Customizer and output the linked social media icons
function theme_slug_show_social_icons() {
 
     $social_sites = theme_slug_get_social_sites();
 
     // Any inputs that aren't empty are stored in $active_sites array
     foreach( $social_sites as $social_site ) {
         if ( strlen( get_theme_mod( $social_site ) ) > 0 ) {
             $active_sites[] = $social_site;
         }
     }
 
     // For each active social site, add it as a list item
     if ( !empty( $active_sites ) ) {
         echo "<ul class='social-media-icons'>";
 
         foreach ( $active_sites as $active_site ) { ?>

             <li>
             <a href="<?php echo get_theme_mod( $active_site ); ?>">
             <?php if( $active_site == 'vimeo' ) { ?>
                 <i class="fa fa-<?php echo $active_site; ?>-square"></i> <?php
             } else if( $active_site == 'email' ) { ?>
                 <i class="fa fa-envelope"></i> <?php
             } else { ?>
                 <i class="fa fa-<?php echo $active_site; ?>"></i> <?php
             } ?>
             </a>
             </li> <?php
         }
         echo "</ul>";
     }
}

Oh, and obviously you’ll need to remember to enqueue FontAwesome in your WordPress Theme in order to make this all function properly. Then, the CSS styling is totally up to you.