WordPress Plugin Development Quickies – Useful Code Snippets

This post is a collection of short but useful WordPress snippets.

Become a professional WordPress Plugin developer

Take our online course WordPress Plugin Development – Learn by Building 8 Plugins to gain all the skills you need to start creating your own WordPress Plugins with PHP.

Get the blog name in WordPress:

bloginfo( 'name' );

Get a media URL in WordPress:

wp_get_attachment_url($image_id)

Get the value of a setting in WordPress:

get_option('some-setting')

Get homepage URL in WordPress:

home_url( '/' )

Include a file in a plugin that is in the plugin directory:

include( plugin_dir_path( __FILE__ ) . 'some_file.php');

Create a settings page:

1. Needed actions:

//add admin settings
add_action('admin_init', 'xyz_register_settings');
add_action('admin_menu', 'xyz_add_menu_entry' );

2. Register settings:

/**
 * Add plugin admin settings
 */
function xyz_register_settings() {
    register_setting('xyz_group', 'xyz_setting1');
    register_setting('xyz_group', 'xyz_setting2');
}

3. Add menu entry:

/**
 * add menu to admin
 */
function xyz_add_menu_entry() {
    add_options_page( 'My Settings Page', 'My Settings Page', 'manage_options', 'xyz', 'xyz_plugin_options' );
}

4. Plugin settings page:

/**
 * show admin settings page
 */
function xyz_plugin_options() {
        
    
    ?>
    <div class="wrap">
        <?php screen_icon(); ?>
        <h2>My Settings</h2>
        <form action="options.php" method="post">
            <?php settings_fields('xyz_group'); ?>
            <?php @do_settings_fields('xyz_group'); ?> 
            <table class="form-table"> 
                <tr valign="top"> 
                    <th scope="row"><label>Setting 1</label></th> 
                    <td>
                        <input type="text" name="xyz_setting1" id="xyz_setting1" value="<?php echo get_option('xyz_setting1'); ?>" />
                        <br/>
                    </td>                
                </tr>        
                <tr valign="top"> 
                    <th scope="row"><label>Setting 2</label></th> 
                    <td>
                        <input type="text" name="xyz_setting2" id="xyz_setting2" value="<?php echo get_option('xyz_setting2'); ?>" />
                        <br/>
                    </td>                     
                </tr>                 
                
            </table> <?php @submit_button(); ?> 
        </form>
        
    </div>
    <?php
}

Create a shortcode with arguments and content in WordPress:

add_action('init', 'xyz_register_shortcodes');

function xyz_register_shortcodes() {
    add_shortcode( 'your-shorty', 'xyz_shortcode' );
}

function xyz_shortcode($args, $content) {
    $result = '<a href="'.$args['url'].'">'.esc_attr($content).'</a>';
    return $result;     
}