Category Archives: Tips and Tricks

Short tips or tricks about WordPress. Links to YouTube videos, etc.

Notes from Introduction to Functions and Hooks (Actions & Filters)

Thank you to everyone who made it out to our November General Meetup. We gave a basic introduction to how you can customize WordPress beyond Themes and Plugins using the WordPress Plugin API (Application Programming Interface)

These hooks allow you to include your own custom code within WordPress to do a myriad of things. You can use Actions to inject code, or compare variables and filters to run your own routine within WordPress (like say to pull data from an external source and format it for WordPress to ingest.

This modularity is what makes WordPress so functional for so many diverse user cases. Any plugin is really just a complicated set of functions that leverage the Plugin API to create Actions or Filters.

We gave a little demo, which I won’t repeat here as it was a little inaccurate. Instead I’d like to point you to a few resources that are far more elegant in presenting the basic concepts.

WebDev Studios has a great article on getting started with hooks with a few inline examples.

Pippin Williamson also has a good introduction to using filters, the more complicated of the two hooks (in my humble opinion).

Of course, there’s always the Codex entry on Hooks and the well-organized Code Reference library.

While a little more technical that our past General Meetup topics, we hope you enjoyed the meetup and look forward to seeing you at a future event!

Photo by Thomas Hawk – Licensed under Creative Commons

July Meetup Notes from WordPress St. Louis West – WordPress security using iThemes Security

Jason Yingling, Developer at Red8 Interactive hosted our first Meetup in St. Charles. The turnout was great for our first event. Thanks to OPO Startups and the rest of the Red8 crew for making us feel welcome. We’re looking forward to the next meetup out west!

Jason talked about WordPress security using iThemes Security, a popular security plugin. Even if you don’t use iThemes Security (and why not? It’s a really good plugin) there are a lot of tips and tricks that can help make your site more secure. Check out the presentation below.

If you’d like to know more, Jason is hosting the August WordPress St. Louis West on the 24th. He’ll be talking about how to go from a PSD to a WordPress template. RSVP today!

Quick WordPress Optimizing Tips

Last week I sat in on this great A List Apart: On Air event titled  “Designing for Performance” It was their first online-only panel with four great presenters. Along the way I picked up a few tips and tricks I wanted to share with you all.

Here’s a few quick things you can do to improve the performance of your WordPress site.

Introduction

Before we begin, if your site is accessible from the web, punch in its URL into one of the following tools (or both!).

Make a note of the scores you’re given. We’ll compare them at the end.

Use a caching solution

The first thing you can do? Install a caching plugin or setup an in-memory cache. For folks on shared hosts (Bluehost, Hostgator, etc) the easiest (and often only) option will be going with a plugin. My plugin of choice is WP Super Cache.  Why this one in particular? It’s been around for ages, is super easy to use while still being customizable, and it’s authors include Donncha O Caoimh and Automattic. A pretty good pedigree if you ask me.

If you don’t want to do much mucking around, just install the plugin and turn on caching. This will allow your site to serve static version of your pages. This make your site quicker as WordPress (and the PHP/MySQL behind the scenes) doesn’t have generate a new page for each visitor.

Advanced options that I like to use are in the screenshot below. I like to make sure I enable  compressing pages as less data has to get tossed around. “Don’t catch pages for known users.” is handy if you’re an individual editor (or have a small team). This tells WordPress to alway serve up a new page to folks who are logged in to your site. This way you always see your updates without having to clear the cache.

WP_Super_Cache_Advanced

Compress your theme’s images

Let’s say you’re building a theme from scratch, using a child theme, or even just uploading a nice crisp PNG for your site’s header image. In each case WordPress  will use images within the theme to display common elements – like that header image. When these elements appear on every page your site has to serve up that image to every viewer, every time.

One way to speed up your site is to make sure you compress these common images as much as possible. This doesn’t mean degrade their quality with heavy compression like jpg images, but to remove as much metadata and use more advanced compression algorithms as possible.

Side note: Another big win for leveraging smaller images is to make sure you’re not uploading giant images to only have them displayed at small sizes. That’s a whole ‘nother post on its own!

How do you do this? Grab an application like ImageOptim or RIOT.

With either of these apps you can drag and drop in your images and let the tool do its magic. This includes background images, header images, or even icons used across your navigation and widgets.

Here’s an example of a recent optimization from a theme I optimized. This is using ImageOptim. Either tool uses a whole suite of tools behind the scenes to make the best optimization quickly and with great results. imageoptim-example

I saved a whopping 47% on average in this theme. In the case of my background tile image I saved a whole 80%. Not to bad. (Here’s another example with less impressive, but still good, results.)

 

Set up a caching rule

Even with something like WP Super Cache in place you still might need to set up some rules about static content. Static content is things like images, documents, multimedia files, etc.

For these files, WordPress delivers the file for a visitor every time. Even if they leave and come back five minutes later!

The easiest way to do this is to modify your .htaccess file and add a few rules for static content. The .htaccess file tells your site to give folks a locally cached version of the file and to ‘expire’ the item in the cache after so many minutes. This greatly helps in the loading of those (newly optimized) theme images I mentioned in the last tip, and any other files visitors consume on a regular or repeat basis.

I’m going to direct you to this post that has the handy steps on caching static content.

 

Minify your CSS

You’re using a child theme, right? Or maybe a custom theme built from a starter framework? Once your site is ready for production you can shrink your CSS files to make things a little quicker.

Minifying your CSS takes the human-readable version of your CSS file, with all it’s great inline comments and indents, and strips all that junk out. The computer doesn’t need any of that!

Now you’ll want to keep an un-minifed version around for future changes. Take a copy of your style.css file in your theme directory and rename it. Call it style-original.css or something and set it aside.

Now, copy and past the content of your style.css file into a tool like CSS Minifier or CSS Compressor. These tools will strip out any comments or spaces (making your file pretty much unreadable by humans) and reduce the file size (and therefore load times) of your CSS.

Copy the minified CSS back into style.css and save. If you have to make new updates down the road (always in your dev environment first, right?) you can re-load your human-readable CSS file, make your edits, and minify again.

On a few sites I manage I was seeing upwards of 60% file size savings. When were talking about mobile devices in not-so-good coverage areas that could be the difference between your site loading and a visitor leaving.

 

Conclusion

This is just a few things you can do quickly to improve the performance of your site. Making your site load quickly for visitors make them more likely to hang around and helps with your search rankings.

How much of an impact does it make? Remember those tests I asked to your run at the beginning of this post? Here’s a before and after (totally unscientific) comparison to a site I manage. I ran the default tests from webpagetest.org. Just using these tips made one score go from a C to a B and another from an F to a B!

webpagetest-beforewebpagetest-after

If you have tips or tricks you use to make your site’s a little quicker, let me know in the comments below. Thanks for visiting and I hope to see you at one of our upcoming meetups!

Photo by _chrisUK – Licensed under Creative Commons

October General Meetup Notes

 

Thanks to everyone for coming out Wednesday night.  It was a really good turn out and we had some interesting discussions and questions.  I didn’t have slides to share so I thought I’d write a quick post to summarize everything we went over and aggregate the resources/links that were discussed. So without further ado…

The Basics of Theme Customization

In the broadest of terms, there are three “levels” of customization that we talked about.  They are, from easiest to hardest:

  1. Customizing using the built-in WordPress customizer
  2. Using a child theme to customize presentation
  3. Creating a copy of an existing theme and modifying

Using the built-in customizer

This approach, while also the easiest, is the most limited in scope.  For an option to be customizable via the customizer the theme developer needs to add functionality via the theme’s functions.php file.

The customizer can be accessed via the “Appearance” menu in the WordPress admin menu.

Screen Shot 2014-10-16 at 10.28.10 AM

The options that appear on this page vary from theme to theme, but most themes that include this functionality allow you to customize background colors, links colors, menu, widgets, and other similar things.  Certain theme “ecosystems” like ThemeForest or Elegant Themes, or frameworks like Genesis, have custom theme options that are independent of the built-in WordPress customizer but function similarly.

Building a Child Theme

If you’re looking to go beyond the basic customization allowed by the customizer (either built-in or custom), the recommended way to do this is to create a child theme.  Child themes inherit all of the functionality and presentation from the parent theme with the exception of the customizations you make.

We covered the basic steps to create a child theme:

  • Create a new folder in the wp-content/themes
  • Create a style.css file and copy the required header information from codex and modify for your new child theme.
  • Create a functions.php file and copy the code snippet from the codex that will tie your child theme to the parent theme.

Once you’ve done these steps, log in to your WordPress dashboard and activate your new theme.  If  you’ve done everything correctly your site will resemble the parent theme.  After you’ve verified that the new theme is working, feel free to add any of the custom CSS, HTML or PHP to make the theme your own.

ProTip: Use Chrome/Firefox/Safari inspector tools to find css and edit it “on the fly”.

A quick warning about using child themes; when the  parent theme updates there is a small chance that the developer may change something that breaks your customization (i.e. renaming an element’s id or class), but this isn’t considered to be a “best practice”  so you should mostly be fine.

“Forking” an Existing Theme

The most advanced way to customize a theme is to create your own theme by copying an existing theme and modifying  its theme files.  At the least, you’ll have to edit style.css so WordPress won’t attempt to update your new theme if the existing theme is updated.

If you purchased the theme  from Code Canyon, Theme Forest, or another, there may be some ramifications if you distribute the theme.  I would consult the license that came with the theme for specifics.  All the themes found on wordpress.org are open source, but it is a good practice to always give credit to the original author.

tl;dr

Useful plugins:

  • What The File – “adds an option to your toolbar showing what file and template parts are used to display the page you’re currently viewing”
  • Page Builder – “Build responsive page layouts using the widgets you know and love using simple drag and drop”

Relevant Codex Articles:

Helpful Sites:

  • WP Test – “A fantastically exhaustive set of test data to measure the integrity of your plugins and themes”
  • Stack Overflow – “a question and answer site for professional and enthusiast programmers”
  • WordPress Stack Exchange – WordPress specific section of Stack Overflow
  • GenerateWP – “The easiest and the fastest way to create custom and high quality code for your WordPress project using the latest WordPress coding standards and API’s”

Thanks again to those who came out to the meetup, I hope to see all of you again next month or at the WordCamp San Francisco watch party.  Feel free to reach out to me on twitter with any questions, I’m @coderaaron.

August 2014 General WordPress Meetup Notes

We had a great turnout this month – even with the Cards game happening just a few blocks down the street. Thanks to everyone who came out!

Main Event

The main topic of the night was covering some handy tools that help you keep tabs on your WordPress site. We covered Uptime Robot, Infinite WP, and Google Analytics.

Uptime Robot

Screen Shot 2014-09-03 at 9.56.48 PMThis handy website lets you know when your site is down. When a site is down that means that visitors aren’t able to see the site and won’t know why! By using Uptime Robot you can setup alerts to be notified via email or SMS when your site is inaccessible.

This is a free service and you can track up to 50 sites! They don’t have to be WordPress sites at all – this works for any site you’re interested in tracking. The service is hosted, so there isn’t even an installation process. Just sign up, add your sites, set how frequently your site should be checked and wait!

It’s also super handy if you have multiple sites across clients. You can know before they do when a site is having an issue. You can quickly figure out what’s going on, and let your clients know preemptively!

Infinite WP

Screen Shot 2014-09-03 at 9.58.41 PM

Infinite WP makes managing plugins and theme updates across multiple separate WordPress installations a breeze. You install a simple client on your web host, a plugin on each of your sites, and away you go!

Infinite WP will let you know when your sites have an update available and you can update by site (all plugins at once), by plugin (this plugin on all sites where its installed), or even piece mail – one at a time. There are a ton of add-ons for Infinite WP that extend it’s capabilities even further.

A recent update also brings easy backups to your sites. So your workflow could be something like:

  1. Get a notification of an update via Infinite WP
  2. Backup your Dev/Test site.
  3. Update your Dev/Test site to make sure things are hunky-dory.
  4. Backup your Production site(s).
  5. Update your Production site(s) without leaving your beach chair.

All of that without leaving Infinite WP.

Google Analytics

Screen Shot 2014-09-03 at 10.05.20 PM

We could have easily spent multiple evenings covering the various ways you can leverage Google Analytics it’s that powerful. In a nutshell Google Analytics allows you to keep track on how visitors get to your site, what they do on your site, and some demographic information like geographic location and what browser it uses. It becomes even more powerful when you get into developing campaigns and set goals for your visitors.

Say for example you’re promoting a big event or a new item in your store. You can send out emails, tweets, and Facebook updates with a specific URL that will tell you, in Google Analytics, which outlet lead to that person arriving at your site, and what percentage of visits turned into ‘conversions’ – someone did something you wanted them to do like sign up for a newsletter or buy something.

Google has some great resources on getting started with Google Analytics. Integration with WordPress is a snap with numerous Google Analytics plugins. My particular fave is Google Analytics for WordPress by Joost de Valk.

Bonus Tools

A few other tools that were mentioned in the similar vein that we didn’t get to spend a lot of time on are listed below. Take a look and you might find a handy addition to your utility belt.

IFTTT – Hook up WordPress to hundreds of other services all with simple to create ‘recipes’. Want your Instragram photos to automatically publish to your blog? Easy peasy .
 

Piwik – Don’t like Google? Want to host your own analytics? Pwiki’s your solution.

Woopra – A real-time analytics package. See who’s on your site right this minute. Some say better than Google Analytics!

Next Month

In September we have the talented Gregory Ray taking us through the best practices and dark art secrets of Hardening WordPress. Join Gregory and the gang on Wednesday, September 17th at Lab1500.

Photo by Dean Gugler – Licensed under Creative Commons

The many, many uses of Advanced Custom Fields

Editors note: This is a guest post by Brian Goldstein. Brian is a freelance WordPress developer in University City. He’s also nearly completely self-taught.  To see some of his work or to get in touch,  check out briankappgoldstein.comIf you’d like to be a guest writer here on STL WP, let us know.

brian-treehouse

There are a few plugins I tend to use on just about every WordPress install I do – for me or for a client.  I always use a back-up plugin, SEO by Yoast, and I’ll almost always use Advanced Custom Fields.

As a developer or a designer, it’s tempting to hide everything away from your clients, so they can’t break the site you’ve just built. ACF helps maintain the design and code integrity of the site while giving your client a way to update content without you. It uses the same logic as the WordPress Loop, so implementation and troubleshooting is simple.

In this article I’ll show 3 simple use cases from a few sites I’ve worked on recently.

Example 1

A common way to use ACF is with another popular plugin, Custom Post Types UI which makes creating custom post types a breeze. Once you create a custom post type, you then create the field groups you want to use and then make them available only for that post type. Once you enter in all the information, be it text, images, or video, you write a php loop calling in those custom post types. Here’s a more concrete example:

ACF_Example

Here, each of these boxes of content are custom post types. One advantage is that once your client “gets” how to make a new blog post, they also know how to change a custom post type. Here’s a screenshot of the editing view of one of these custom post types.

ACF_Editing

As you can see, instead of the standard WYSIWYG (What You See Is What You Get) content editor, you can show the custom fields. ACFs documentation is a clear and an excellent resource.

After you enter the content for each custom post type, we’re ready to edit our theme files to dynamically loop in our custom post types.

On this project, because I also want to display that content elsewhere, it’s inside content-services.php, not the service.php template file. In this case, they are closely related, as we’ll see.

Here is the code for the query that calls in content-services.php on the service.php template :

We open a php block and define an array with the post type we want, then query that array in our loop. The loop pulls in our content-services.php file, where the code that pulls in our fields live. That code looks like this:

Every time you see “the_field()”, that’s pulling in the information you entered in your custom post type. Because the loop ends in services.php and this is inside that loop, you only need to make sure you close each php block, not the loop itself.

Example 2

This example and the next require purchasing the repeater field add-on to ACF. It’s one of the few premium plugins I’d ever recommend buying.

Using the repeater add-on makes displaying a lot of the same kind of information super simple.

For instance, on a restaurant site I recently built, the client needs to be able to change their menu without calling me each time they want to update a menu item. So I built out the menus using ACF’s repeater function.

Each menu section was its’ own field group – so they could add or remove the groups at will. Then, using the repeater I created 2 or 3 sub fields depending on the menu section. Next, I entered in all the data for those menu items – the name of the item, the description, and the price. Finally, it was time to code it out. Here’s what that looked like. These are inside a container div, which has at least one row, and it’s broken into 2 columns in the bootstrap grid, for some context.

Similar logic – you’re telling it to find the field group app here, and if there are rows, while there are rows, to display the sub fields Item, Price and Description.

Example 3

Using ACF repeater to dynamically insert images into a carousel.

Again, similar code: creating a loop that checks for the field, and then if there is data for the subfield, injects it into the source attribute of the img in the carousel. Because it’s just PHP, you can use it just like you use other WP tags. The client can use the photos they want to use without my involvement. You can see this example and the previous example live on plantershousestl.com.

Truth is, I haven’t even scratched the surface of what ACF can do. If you have an ingenious use for ACF, I’d love to hear from you. ACF’s simple code, easy integration on the WP dashboard, and versatility into any design you can imagine make it a go to plugin for me.

Brian Goldstein, freelance WordPress developer
briankappgoldstein.com
@briangoldstein

New, Must-Have Plugin: WPCore Plugin Manager

Wow, I’m impressed! WordPress has been needing something like this for quite some time. I just wish I would have thought of it first.

If you’re not sure what I’m talking about, it’s a new plugin called WPCore Plugin Manager. This plugin allows anyone and everyone to create a custom collection of plugins for WordPress and install them all at the same time on a WordPress website. You can have private or public collections.

Screen for adding a custom plugin on wpcore.comIt even allows you to add custom plugins that aren’t on the wordpress.org plugin repository! This is a serious game changer!

Questions?

You no doubt have some burning questions that need answering…

How much does WPCore cost?

Nothing, it’s free…seriously, why are still reading and not installing this plugin?

How do I get started?

Great question, register!

I typed in a plugin name and it doesn’t show up. What do I do?

I’ve noticed while searching it doesn’t always list your plugin. All you have to do is find the plugin on wordpress.org and grab the slug from the url for that plugin.plugin-slug

Other Questions?

Check out WPCore’s FAQ or ask em in the comments below!

Themes and Plugins – Notes from the July 2014 General WordPress Meetup

After a roller coaster of scheduling fun we had our first Meetup in our new location at Lab1500 (home of Pushup). We talked about Themes and Plugins. For those who couldn’t make it we put together some notes from the evening’s presentations. For those of you would did make it, feel free to add your own thoughts via the comments below!

First up, Bob Barker shared with us an official Bob Barker Whitepaper. Here’s the copy from his handout.


Just another Bob Barker Whitepaper. Whitepaper (defined): useless or minimally valuable information that someone distributes so as to obtain your email address in order to send even more junk of even less value (aka fodder).

Places to check out… 

  • Spybar  – a handy toolbar that shows you the software (and plugins) used to build the site you’re visiting.
  • WordPress Theme Generator
    •  (ed note: Chris Miller also mentioned Headway as a similar solution)
  • WPMU 
  • iThemes

Looking for the awesome WordPress themes? Here’s the place to find them! 

http://www.wordpress.org/themes/

As of: 7-16-2014 2,620 THEMES, 106,186,898 DOWNLOADS, AND COUNTING

Looking for the awesome WordPress plugins? Find them here!

http://wordpress.org/plugins/ 

32,251 PLUGINS 695,392,281 DOWNLOADS, AND COUNTING 

Disclaimer: All information and advice provided by Bob Barker, Mid-American Marketing Associates, The Barker Companies, Their affiliates, associates, Their Foundations, employees, or associates of any of Bob’s companies are NOT warranted or carry any guarantee whatsoever. Please seek the professional advice of an attorney or accountant before proceeding with any endeavors as a result from information provided or questions answered; we do NOT guarantee or give any warranty of the information we provide. Please proceed at your own risk.


Chris K. (that’s me) then talked about the various kinds of themes.

From the most raw and basic (and heavy code knowledge to use), to most advanced and determined (with little code editing) there are generally 4 different kind of themes.

  • Starter Themes
  • Regular Themes
  • Child Themes
  • Theme Frameworks

Starter themes

Starter themes are the raw stuff of theme design and function. Many are minimal, barebones themes that you would use to customize and develop up on.  Most have few (or no) design decisions made beforehand. So no pre-defined colors, layout, grid, etc.

A few popular starter themes are:

A starter theme should probably not be your first theme to muck with. Instead I recommend you take an existing Regular Theme and play with it first.

Read more:

  • https://thethemefoundry.com/blog/wordpress-starter-theme/

Regular Themes

These are the majority of themes you’ll find on wordpress.org, elegantthemes, themeforest, etc. In most cases they are well build and well designed themes that have a certain visual appearance (trendy, retro, dark, earthy, etc.) and purpose (photography, real estate, blogging, e-commerce, etc.).

For most of these themes, many design, layout, and functionality decisions have been made for you.  Most will offer some customization via the theme customizer, but to really change things up you’re looking at building a child theme and getting your hands dirty with code.

Child Themes

So let’s say you download a regular theme, make some changes, and maybe even dip into the css or functions.php to add some custom functionality or style. Then an update to that theme is released. Being a good WordPress owner, you click the big update button.

What happens?

Those custom changes are overwritten with that update. Whoops.

Let’s say you get into custom post types, or custom fields – some fairly advanced stuff. How do you keep those changes across updates to your themes? Especially with advanced themes (like the frameworks mentioned below) there are security risks with not updating – updating is good!

The answer? You should create a child theme!

What is a child theme? Like real children, they need a parent to survive and they inherent traits and capabilities from that parent theme.

A child theme allows you to modify an existing theme (even a starter theme. They too have updates!) without worrying about your changes being overwritten with theme updates.

A basic child theme is as simple as having only one file – style.css. From there you can modify any additional files from your parent theme. header.php, single.php, heck even functions.php!

There’s a great article on the codex on creating a child theme. Remember, files (and their modifications) in a child them override the parent theme files, but not overwrite them. Meaning child themes are a great way to take apart an existing theme to see how it works, without making your changes permanent.

For example, let’s say you wanted to modify the footer from a them you found on WordPress.org. You could copy the footer.php from your parent them into your child theme and edit to your heart’s content. When your site is visited, your custom footer.php is loaded in place of the existing file!

Read more about child themes:

Theme Frameworks

Theme frameworks are like a micro eco-system within WordPress. There are tons of options, development hooks, and extensions outside of the stuff you normally would do with vanilla WordPress and a traditional theme.

Some theme frameworks have options that you’d normally see in separate plugins included as part of the framework. SEO options, custom widgets, layout options, security, support, etc.

Generally, frameworks have many custom features and functions that WordPress doesn’t offer out of the box. The catch is that many have a financial cost, and require (or work best with) a smaller selection of themes.

Genesis – one of the larger frameworks available. It has a large user and developer community, many Genesis-specific themes and some brilliant features making managing content, layout, and design easy without touching code.

Thematic – an open-source theme framework

Read more:

Choosing Themes and Plugins

We then talked a little about choosing themes and plugins for use. A few things we suggested were:

  • Start at wordpress.org
  • Read reviews
  • Look at how frequently the theme is updated
  • Check to see if it has the features you need – like being responsive.

Other resources for finding themes include:

Some of my favorite Themes

Plugins

Plugins extend WordPress and new and useful ways. Plugins operate using something called a hook to insert themselves into WordPress.

Hooks basically add some code using either an action or a filter. A plugin that operates on an action works when an event happens – you load the admin dashboard, save a page, etc. Filters happen when you query the database for information – like rendering a page, or a list of pages in a category, etc.

The codex (once again!) has a great entry on Hooks.

Some plugins are very advanced in what they do. They can totally extend WordPress in new directions, giving it capabilities it didn’t have. Some examples:

Read more on plugins

One last thing, in WordPress 4.0 coming in August there is an update on how you search and install plugins. You can read a little about the 4.0 update at WordPress.org.

Like these notes? Join us at our next meetup. They’re free, welcoming meetings where we share and learn together. Find out more at meetup.com.

How to Find and Legally Use Photography for your WordPress Site

One of the more tricky aspects of using WordPress has nothing to do with the software itself, but trying to find a  good image to use as a visual anchor for your posts.

Adding an image to your posts is a great way to draw attention to an article and really make your writing stand out.

Not everyone has a large budget or the skills of photography to find a perfect photo for every post. Personally, even if I had both, I wouldn’t have the time to go out and shoot the specific image I needed.

The biggest boon to finding suitable photography is Creative Commons. Simply put, Creative Commons is a way for artists to preemptively declare licensing for their work. You can license your work under various versions of Creative Commons licenses and folks can use them accordingly without having to pre-negotiate terms.

Most of the time (remember, I am not a lawyer) you can use photos with a Creative Commons license for your work without having to contact the original artist. The catch, which isn’t insane to expect, is that you have to provide proper attribution to the author for their work. Basically, you have to give credit to the original artist.

My favorite solution to find Creative Common licensed photography is Flickr.

Why Flickr? The library is rich, hundreds of thousands of photos, and incredibly diverse, with Flickr users coming from all walks of life from around the world.

They were also one of the first photo sharing services to enable folks to license their photos under Creative Commons. You can search across all of Flickr, and using the Advanced Search Feature, filter to just show photos with a Creative Common license. Here’s an example search for “puppy dogs“.

Flickr Advanced Search

You can easily see the license for any photo on Flickr in the photo sidebar.

flickr-cc-license

Then, when using the photo, you can add something like this in your post (under the photo, in the post meta tags, or at the bottom):

Photo by Steve Wall –  licensed under Creative Commons

I hope this is a helpful introduction to Creative Commons and finding strong photos for your posts. If you have more ideas, suggestions, or feedback, please leave a note below.

P. S. There are  many more collections and options that have been talked about else ware on the web. Two other useful articles are this one from demosthenes.info and another from Dustin Senos on Medium.

Photo by Steve Wall –  licensed under Creative Commons

Three quick WordPress Tips

Everyone loves a good list of tips. These are a few of my favorite, but feel free to sound off in the comments with your own.

1. Access the Admin with /admin – You don’t have to navigate to yoursite.com/wp-admin to login. You can just point to your site.com/admin or my favorite and especially easy to remember your site.com/login

2. Command + K – What sounds like a funky European DJ is actually a recent update to the Visual Editor. When you want to add a link while writing, highlight your text and hit command + K to bring up the insert/edit link dialog box. Windows folks can use ctrl +K.

3. Turn off Comments for Pages – Nothing looks weirder than having a relatively static page (like the About or Contact pages) with random and ancient comments. Turn off comments for these sort of pages and funnel that dialog to posts, email, contact forms, or social media.