Posted in wordpress
15
2:14 am, September 27, 2024
 

Wordpress Use the settings API

PHP

<?php
/*
 * Add the admin page
 */
add_action('admin_menu', 'wpse61431_admin_page');
function wpse61431_admin_page(){
    add_menu_page('wpse61431 Settings', 'wpse61431', 'administrator', 'wpse61431-settings', 'wpse61431_admin_page_callback');
}

/*
 * Register the settings
 */
add_action('admin_init', 'wpse61431_register_settings');
function wpse61431_register_settings(){
    //this will save the option in the wp_options table as 'wpse61431_settings'
    //the third parameter is a function that will validate your input values
    register_setting('wpse61431_settings', 'wpse61431_settings', 'wpse61431_settings_validate');
}

function wpse61431_settings_validate($args){
    //$args will contain the values posted in your settings form, you can validate them as no spaces allowed, no special chars allowed or validate emails etc.
    if(!isset($args['wpse61431_email']) || !is_email($args['wpse61431_email'])){
        //add a settings error because the email is invalid and make the form field blank, so that the user can enter again
        $args['wpse61431_email'] = '';
    add_settings_error('wpse61431_settings', 'wpse61431_invalid_email', 'Please enter a valid email!', $type = 'error');   
    }

    //make sure you return the args
    return $args;
}

//Display the validation errors and update messages
/*
 * Admin notices
 */
add_action('admin_notices', 'wpse61431_admin_notices');
function wpse61431_admin_notices(){
   settings_errors();
}

//The markup for your plugin settings page
function wpse61431_admin_page_callback(){ ?>
    <div class="wrap">
    <h2>wpse61431 Settings</h2>
    <form action="options.php" method="post"><?php
        settings_fields( 'wpse61431_settings' );
        do_settings_sections( __FILE__ );

        //get the older values, wont work the first time
        $options = get_option( 'wpse61431_settings' ); ?>
        <table class="form-table">
            <tr>
                <th scope="row">Email</th>
                <td>
                    <fieldset>
                        <label>
                            <input name="wpse61431_settings[wpse61431_email]" type="text" id="wpse61431_email" value="<?php echo (isset($options['wpse61431_email']) && $options['wpse61431_email'] != '') ? $options['wpse61431_email'] : ''; ?>"/>
                            <br />
                            <span class="description">Please enter a valid email.</span>
                        </label>
                    </fieldset>
                </td>
            </tr>
        </table>
        <input type="submit" value="Save" />
    </form>
</div>
<?php }
?>

External Link for Wordpress Use the settings API

View Statistics
This Week
15
This Month
15
This Year
15

No Items Found.

Add Comment
Type in a Nick Name here
 
Other Items in wordpress
Wordpress Use the settings API Wordpress add a sub menu to your plugin Disable the ACF Warning message in wordpress dashboard load a page as a menu in wordpress extract a wordpress menu using its id Wordpress template with fixed sidebar in flex add a page template in a wordpress theme wordpress jquery find and replace option text value wordpress block grid code display a subnav for the current wordpress page using wp_nav_menu to show a custom menu in wordpress get and show the featured image on a wordpress page template link to a custom style sheet in your theme directory wordpress wordpress show page content on template file show post content on template wordpress wordpress add a template file to your theme fix for wordpress requesting ftp login details installing plugins wordpress category list sorting custom adding pagination to custom wp_query add paging to wp list query list items from blog and filter by category name match a category id in wordpress and then add styles just for that id get the current post id from content.php wordpress get the current category id name and slug get the wordpress category name from a category id wordpress adding post custom field meta and displaying it on you template getting the site title vs the page name wordpress get home url add a tag to wordpress header from a plugin list items matching a category title wp register plugin settings admin Create a admin main wordpress custom menu item wordpress show the parent page title with fallback to title Add a post date to your custom wordpress post listing wordpress get page content to display on template page get the stylesheet directory in wordpress theme wordpress register enqueue javascript require jquery wordpress show the post content for use in a template wordpress show posts loop with feature image thumbnail wordpress get site url wordpress advanced custom fields replace shortcode for site url with blog url wordpress check home and not home for banners and things wordpress use a shortcode in php gravity forms wordpress include jquery in theme functions wordpress enqueue slicknav and slick slider wordpress show the page content for use in a template wordpress change domain in config, wordpress domain config wordpress get template directory
Search Code
Search Code by entering your search text above.
Welcome

This is my test area for webdev. I keep a collection of code here, mostly for my reference. Also if i find a good link, i usually add it here and then forget about it. more...

Subscribe to weekly updates about things i have added to the site or thought interesting during the last week.

You could also follow me on twitter or not... does anyone even use twitter anymore?

If you found something useful or like my work, you can buy me a coffee here. Mmm Coffee. ☕

❤️👩‍💻🎮

🪦 2000 - 16 Oct 2022 - Boots
Random Quote
In this case my anchor this week becomes driving almost 2hrs outside of Atlanta to one of my favorite hard core gyms in the world.. MetroFlex aka The Dungeon. The gym owners turn the heat way up so it becomes a fun sweat box and the gym members just watch from afar and leave me alone. I happily drive myself long distances to find MY ANCHOR. Our anchor allows us to have balance, focus and be as productive as possible. And if you're in the middle of a heavy set and your headphones start to fall off your head, like mine did here.. well.. f*ck the headphones. Let em break and fall. You can always get a new pair, but the iron ain't ever gonna lift itself.
Unknown
Random CSS Property

@viewport

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.
max-width (@viewport) css reference