
10+ Really Useful WordPress Functions
Functions…
Functions play a big part in how your WordPress theme works as its performs as a plugin would.
You can add code snippets to improve the functionality and features of your site, you can add your own functions, call PHP functions or hook into a WordPress function.
It really is a useful file and here is some of my most used WordPress snippets to help me solve problems I face from time to time.
I know that many people would say that there are plugins to do these functions, Yes there are, but less is more, if its only 8 lines of code that you can easily paste in the functions file then why use a plugin.
So lets begin.
Add 3 custom sidebars
Adds 3 custom sidebar for you to use in the widget section of WordPress. simply remove / add as many as you need. (register_sidebar codex)
<?php function custom_sidebar_function() { register_sidebar( array ( 'name' => __( 'Custom Sidebar 1', 'text-domain' ), 'id' => 'custom-sidebar-widget1', 'description' => __( 'Custom Sidebar 1', 'text-domain' ), 'before_widget' => '", 'before_title' => '', 'after_title' => '
', ) ); register_sidebar( array ( 'name' => __( 'Custom Sidebar 2', 'text-domain' ), 'id' => 'custom-sidebar-widget2', 'description' => __( 'Custom Sidebar 2', 'text-domain' ), 'before_widget' => ' ", 'before_title' => '', 'after_title' => '
', ) ); register_sidebar( array ( 'name' => __( 'Custom Sidebar 3', 'text-domain' ), 'id' => 'custom-sidebar-widget3', 'description' => __( 'Custom Sidebar 3', 'text-domain' ), 'before_widget' => ' ", 'before_title' => '', 'after_title' => '
', ) ); } add_action( 'widgets_init', 'custom_sidebar_function' ); ?>
Add a custom menu
Adds a custom menu to wordpress which you can then use in your widgets. (register_nav_menu codex)
<?php add_action( 'init', 'register_custom_menu' ); function register_custom_menu() { register_nav_menu('custom-menu',__( 'Custom Menu' )); } ?>
Add a settings page
Adds a settings page to the settings panel in WordPress with a textbox setting to get you started. (add_submenu_page codex) (Options Menu Video Tutorial) (Settings Video Tutorial)
<?php //myTheme ADMIN MENU add_action('admin_menu', 'myTheme_menu'); function myTheme_menu() { add_submenu_page( 'options-general.php', 'myTheme Settings', 'myTheme Settings', 'edit_posts', basename(__FILE__), 'coupon_settingspage' ); add_action( 'admin_init', 'myTheme_settings'); } //myTheme REGISTER SETTINGS function myTheme_settings() { register_setting( 'myTheme-sgroup', 'textBox' ); } //myTheme SETTINGS PAGE function myTheme_settingspage() { if (!current_user_can('manage_options')) { wp_die( __('You do not have sufficient privileges to access this page.') ); } $textBox = esc_attr( get_option('textBox') ); ?> <div class="wrap"> <?php settings_errors(); ?> <form method="post" action="options.php"> <?php settings_fields( 'myTheme-sgroup' ); ?> <?php do_settings_sections( 'myTheme-sgroup' ); ?> <input type="text" id="textBox" name="textBox" value="<?php echo $textBox; ?>"> <?php submit_button(); ?> </form> </div> <?php }
Add custom CSS & JS scripts to the header or footer
Remember to create a main.css file and scripts.js file in your theme directory and update the directory paths. (wp_enqueue_style codex) (Video Tutorial)
<?php function add_theme_styles() { wp_enqueue_style( 'custom-styles', get_stylesheet_directory_uri() . '/assets/css/main.css',array(),null,'all'); } function add_theme_scripts() { wp_enqueue_script( 'custom-script', get_stylesheet_directory_uri() . '/assets/js/min/scripts-min.js',array('jquery'), null, true); } add_action('wp_enqueue_scripts', 'add_theme_styles'); add_action('wp_enqueue_scripts', 'add_theme_scripts'); ?>
Add google analytics to header
Add that precious tracking code to the header of your site with ease. (wp_head codex)
<?php add_action('wp_head', 'add_google_analytics'); function add_google_analytics() { ??> // Paste your Google Analytics code here <?php } ??>
Add a custom shortcode
Add a custom shortcode to do what you want with the one below shows a h1 title and a h3 subtitle. (add_shortcode codex) (Video Tutorial)
<?php // [myshortcode title="My Title" subtitle="My Subtitle"] function shortcode_func( $atts ) { $a = shortcode_atts( array( 'title' => 'something', 'subtitle' => 'something else', ), $atts ); $message = '<h1>' . $a['title'] . '</h1>'; $message .= '<h3>' . $a['subtitle'] . '</h3>'; return $message; } add_shortcode( 'myshortcode', 'shortcode_func' ); ?>
Remove orphan words
Puts a space between the second to last word so no paragraph ends with one word on a new line, not really a function more JavaScript but still useful
<?php add_action('wp_footer', 'add_orphan_script'); function add_orphan_script() { ?> <script type="text/javascript"> jQuery(function($){ $(document).ready(function(){ $('p').each(function(){var string = $(this).html();string = string.replace(/ ([^ ]*)$/,' $1');$(this).html(string);}); }); }); </script> <?php } ?>
Echo theme / child / plugin directory
Useful when your enqueueing scripts or when your referencing an image in your theme directory.
Theme / Child Directory – /wp-content/themes/myTheme
<?php echo get_stylesheet_directory_uri(); ?>
Plugin Directory – /wp-content/plugins/
<?php echo plugins_url( '/assets/css/main.css', __FILE__ ); ?>
Conditional header tag.
Show something on one page but not the others? run scripts on the home page? make a certain page a different colour?
All can be achieved with conditional tags, they are used to do exactly that, run a specific piece of code on a specific post or page.
<?php add_action('wp_head', 'conditional_tags'); function conditional_tags() { if ( is_front_page() && is_home() ) { ?> //FRONT PAGE CSS <?php } elseif ( is_front_page() ) { // static homepage } elseif ( is_home() ) { // blog page } elseif ( is_page(PAGE ID) ) { // a page } elseif ( is_post(POST ID) ) { // a post } } ?>
Add no follow to all external links
For SEO useful if you want to make sure Robots stay on your site and dont drift off somewhere you dont want them to go.
<?php add_action('wp_footer', 'add_orphan_script'); function add_orphan_script() { ?> <script type="text/javascript"> jQuery(function($){$( 'a' ).each(function() { if( location.hostname === this.hostname || !this.hostname.length ) { } else { $(this).attr('rel','nofollow'); } }); </script> <?php } ?>
Echo Yoast Description & Keyword
For SEO echo the contents of the Yoast meta boxes on the post or page, using the below snippets.
Will Require a bit of PHP knowledge
Echo Focus Keyword
<?php echo get_post_meta(get_the_ID(), '_yoast_wpseo_focuskw', true); ?>
Echo Meta Description
<?php echo get_post_meta(get_the_ID(), '_yoast_wpseo_metadesc', true); ?>
If you have any problems or questions please let me know in the comments and I will happily assist.