Professional WordPress Plugin Development. Brad Williams

Чтение книги онлайн.

Читать онлайн книгу Professional WordPress Plugin Development - Brad Williams страница 25

Professional WordPress Plugin Development - Brad Williams

Скачать книгу

and escape strings before inserting them to the database.

      NOTE Designing plugin pages using the Settings API is future‐proof. Imagine that you are creating a plugin for a client on a particular version of WordPress. Later, when the administration interface of WordPress changes (different layout, colors, HTML classes), your plugin will still seamlessly integrate because you did not hard‐code any HTML in it.

      Wrapping It Up: A Complete Plugin Management Page

      Some of the function calls used here need to be hooked into WordPress actions such as admin_init. Let's recapitulate all the steps covered bit by bit into a full‐fledged plugin.

      Improving Feedback on Validation Errors

      The validation function you've previously defined could be slightly improved by letting the users know they have entered an unexpected value and that it has been modified so that they can pay attention to it and maybe amend their input.

      The relatively unknown function add_settings_error() of the Settings API can handle this case. Here's how it is used:

      <?php add_settings_error( setting, code, message, type ); ?>

      This function call registers an error message that displays to the user. add_settings_error() accepts the following parameters:

       setting: Title of the setting to which this error applies

       code: Slug name to identify the error, which is used as part of the HTML ID tag

       message: Formatted message text to display, which is displayed inside styled <div> and <p> tags

       type: Type of message, error or update

      You can improve the validating function with a user notice if applicable, as shown here:

Screenshot displaying an error message in the My plugin page when comparing the validated PDEV plugin data with the original input.

      Expanding with Additional Field Types

      You've now covered the different ways to create a settings page using the WordPress Settings API. Let's expand on that by adding additional form field types to your settings page. This is a more real‐world example showing how elaborate your settings page could be. At the end of this section, you'll review the entire plugin code as a whole.

      First, you need to define additional settings fields using the add_settings_field() function. The following example updates the registration of those fields in your custom pdev_plugin_admin_init() function:

      As you can see in the preceding code sample, you register two new form fields for Favorite Holiday and Beast Mode. Both call custom functions for displaying each field on your settings page. Let's look at the pdev_plugin_setting_fav_holiday() function first.

Скачать книгу