WPBeginner

Beginner's Guide for WordPress

  • Blog
    • Beginners Guide
    • News
    • Opinion
    • Showcase
    • Themes
    • Tutorials
    • WordPress Plugins
  • Start Here
    • How to Start a Blog
    • Create a Website
    • Start an Online Store
    • Best Website Builder
    • Email Marketing
    • WordPress Hosting
    • Business Name Ideas
  • Deals
    • Bluehost Coupon
    • SiteGround Coupon
    • WP Engine Coupon
    • HostGator Coupon
    • Domain.com Coupon
    • Constant Contact
    • View All Deals »
  • Glossary
  • Videos
  • Products
X
☰
Beginner's Guide for WordPress / Start your WordPress Blog in minutes
Choosing the Best
WordPress Hosting
How to Easily
Install WordPress
Recommended
WordPress Plugins
View all Guides

WPBeginner» Blog» Themes» Best Practice: Check if Function Exists When Adding in WordPress Theme

Best Practice: Check if Function Exists When Adding in WordPress Theme

Last updated on May 18th, 2012 by Editorial Staff
22 Shares
Share
Tweet
Share
Pin
Free WordPress Video Tutorials on YouTube by WPBeginner
Best Practice: Check if Function Exists When Adding in WordPress Theme

The best part about WordPress is plugins. Theme designers also have a tendency of using WordPress plugins for adding cool features. When working on a custom WordPress theme project for a client, one thing you want to make sure is follow the best practice. Yesterday, we got an inquiry from one of our users whose site was broken. He had a custom design done by someone. The theme worked great until he changed hosts. His single posts would not load after post content. The comments area, sidebar, footer, nothing will load. It will simply output the error. We went in and fixed the issue for them. The issue was that his theme designer did not follow the best practice. He had a very popular plugin “User Photo” which allows you to add user’s photo at the bottom of the post, except he was just adding the function directly. Now this would work unless ofcourse the plugin gets disabled for some reason. When this client switched hosts, apparently the GD Library was not installed in the new server. This caused the plugin to deactivate. You also could not re-activate the plugin because it relies on the GD Library. This caused the site to be broken for all users. This obviously gets that theme designer a bad reputation because when the client asked what was the issue, we explained to them. If you are a theme designer adding plugin outputs, you should always follow the best practice. Here are some examples of how we do things with our clients:

For the popular User Photo plugin, we have it like this:

<?php
if( function_exists('userphoto') && userphoto_exists($author->ID))
    userphoto($author->ID);
else
    echo get_avatar($author->ID);
?>

The code above checks for two things. It checks if the ‘userphoto’ function exists (basically if the plugin is active). The second check is to see if the user photo exists for the specific author. If both checks return true, then we display the userphoto. Otherwise we simply have it displaying the user’s Gravatar.

For other plugins, which we do not have a substitute for, we always add a little note. For example when we add OIO Publisher output:

<?php if(function_exists('oiopub_banner_zone')) {
oiopub_banner_zone(1, 'center');
} else {
echo 'OIO Zone 1 does not exist. Check to see if this plugin is active.';
}
 ?>

The code above basically see if OIO Publisher Banner Zone function exists (which it will unless the plugin is deactivated). If it does exist, then it will output the banner. If it doesn’t exist, then it shows the text to let the site owner know that this plugin has been deactivated.

If you do not add the function_exists, then your site will return an error where the function fails. Theme designers please start doing this.

22 Shares
Share
Tweet
Share
Pin
Popular on WPBeginner Right Now!
  • Google Analytics in WordPress

    How to Install Google Analytics in WordPress for Beginners

  • Revealed: Why Building an Email List is so Important Today (6 Reasons)

    Revealed: Why Building an Email List is so Important Today (6 Reasons)

  • Checklist

    Checklist: 15 Things You MUST DO Before Changing WordPress Themes

  • How to Properly Move Your Blog from WordPress.com to WordPress.org

About the Editorial Staff

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi. Trusted by over 1.3 million readers worldwide.

The Ultimate WordPress Toolkit

3 Comments

Leave a Reply
  1. Rakib says:
    Oct 21, 2018 at 10:42 am

    really helpful

    Reply
  2. Joana Pereira says:
    Apr 12, 2013 at 3:09 pm

    Good call Kovshenin. I know exactly what you mean because I was using a custom function with contact form 7 (to retrieve the ip address on each form) and every time the plugin was updated, the theme broke.

    Thanks for the tip

    Joana Pereira

    Reply
  3. kovshenin says:
    May 19, 2012 at 12:27 am

    Right, only please stop checking for dynamic_sidebar with function_exists in WordPress themes, unless you need to support WordPress 2.2 and below, which I *highly* doubt. Also with the user photo plugin, the whole approach seems to be wrong and redundant to me, it looks like many developers are missing the whole point of pluggable functions…. Oh well :)

    Reply

Leave a Reply Cancel reply

Thanks for choosing to leave a comment. Please keep in mind that all comments are moderated according to our comment policy, and your email address will NOT be published. Please Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.

Over 1,320,000+ Readers

Get fresh content from WPBeginner

Featured WordPress Plugin
WPForms Logo
WPForms
Drag & Drop WordPress Form Builder Plugin. Learn More »
How to Start a Blog How to Start a Blog
I need help with ...
Starting a
Blog
WordPress
Performance
WordPress
Security
WordPress
SEO
WordPress
Errors
Building an
Online Store
Useful WordPress Guides
    • 7 Best WordPress Backup Plugins Compared (Pros and Cons)
    • How to Fix the Error Establishing a Database Connection in WordPress
    • Why You Need a CDN for your WordPress Blog? [Infographic]
    • 30 Legit Ways to Make Money Online Blogging with WordPress
    • Self Hosted WordPress.org vs. Free WordPress.com [Infograph]
    • Free Recording: WordPress Workshop for Beginners
    • 24 Must Have WordPress Plugins for Business Websites
    • How to Properly Move Your Blog from WordPress.com to WordPress.org
    • 5 Best Contact Form Plugins for WordPress Compared
    • Which is the Best WordPress Popup Plugin? (Comparison)
    • Best WooCommerce Hosting in 2020 (Comparison)
    • How to Fix the Internal Server Error in WordPress
    • How to Install WordPress - Complete WordPress Installation Tutorial
    • Why You Should Start Building an Email List Right Away
    • How to Properly Move WordPress to a New Domain Without Losing SEO
    • How to Choose the Best WordPress Hosting for Your Website
    • How to Choose the Best Blogging Platform (Comparison)
    • WordPress Tutorials - 200+ Step by Step WordPress Tutorials
    • 5 Best WordPress Ecommerce Plugins Compared
    • 5 Best WordPress Membership Plugins (Compared)
    • 7 Best Email Marketing Services for Small Business (2020)
    • How to Choose the Best Domain Registrar (Compared)
    • The Truth About Shared WordPress Web Hosting
    • When Do You Really Need Managed WordPress Hosting?
    • 5 Best Drag and Drop WordPress Page Builders Compared
    • How to Switch from Blogger to WordPress without Losing Google Rankings
    • How to Properly Switch From Wix to WordPress (Step by Step)
    • How to Properly Move from Weebly to WordPress (Step by Step)
    • Do You Really Need a VPS? Best WordPress VPS Hosting Compared
    • How to Properly Move from Squarespace to WordPress
    • How to Register a Domain Name (+ tip to get it for FREE)
    • HostGator Review - An Honest Look at Speed & Uptime (2020)
    • SiteGround Reviews from 4196 Users & Our Experts (2020)
    • Bluehost Review from Real Users + Performance Stats (2020)
    • How Much Does It Really Cost to Build a WordPress Website?
    • How to Create an Email Newsletter the RIGHT WAY (Step by Step)
    • Free Business Name Generator (A.I Powered)
    • How to Create a Free Business Email Address in 5 Minutes (Step by Step)
    • How to Install Google Analytics in WordPress for Beginners
    • How to Move WordPress to a New Host or Server With No Downtime
    • Why is WordPress Free? What are the Costs? What is the Catch?
    • How to Make a Website in 2020 – Step by Step Guide
Deals & Coupons (view all)
wpDataTables
wpDataTables Coupon
Get 20% OFF on wpDataTables WordPress plugin for tables and charts.
SiteGround
SiteGround Coupon
Get up to 63% off off SiteGround's WordPress hosting. Don't miss out!
Featured In
About WPBeginner®

WPBeginner is a free WordPress resource site for Beginners. WPBeginner was founded in July 2009 by Syed Balkhi. The main goal of this site is to provide quality tips, tricks, hacks, and other WordPress resources that allows WordPress beginners to improve their site(s).
Join our team: We are Hiring!

Site Links
  • About Us
  • Contact Us
  • FTC Disclosure
  • Privacy Policy
  • Terms of Service
  • Free Blog Setup
  • Free Business Tools
Our Sites
  • OptinMonster
  • MonsterInsights
  • WPForms
  • SeedProd
  • Nameboy
  • RafflePress
  • Smash Balloon

Copyright © 2009 - 2021 WPBeginner LLC. All Rights Reserved. WPBeginner® is a registered trademark.

Managed by Awesome Motive | WordPress hosting by SiteGround | WordPress CDN by MaxCDN | WordPress Security by Sucuri.